Less-11

1.首先随便写一点 然后直接抓包

mysql注入常用查询语句 mysql注入工具_单引号

可以看见报错了

mysql注入常用查询语句 mysql注入工具_mysql_02

这个时候我们加个单引号,然后分析后台报错得语句

mysql注入常用查询语句 mysql注入工具_单引号_03

mysql注入常用查询语句 mysql注入工具_mysql post 注入工具类_04

可以看见我们只看见了passwd得语法问题 没有看见uname得报错  我们初衷就是要加单引号,通过报错看看uname得语法

所以加一个双引号看看

mysql注入常用查询语句 mysql注入工具_字段_05

这个时候后台报错就出来了

mysql注入常用查询语句 mysql注入工具_mysql post 注入工具类_06

这个时候想办法让他不报错直接admin‘# 闭合单引号

mysql注入常用查询语句 mysql注入工具_单引号_07

可以看见不报错了

然后用order by测试列数(用二分法)

最后才测到是2

mysql注入常用查询语句 mysql注入工具_字段_08

然后union select联合查询

mysql注入常用查询语句 mysql注入工具_字段_09

可以发现不显示内容 只能看见有没有报错,那么我们就没办法通过回显数据来查询我们想要得数据

所以 得换新方法!!

回到我们第一步报错得地方

思路就是 既然他能通过报错去暴露一些语法信息  那么能不能通过报错去暴露一些敏感信息呢

可以 就是今天的方法 双注入(也就是注入里面会用到两个select)

mysql注入常用查询语句 mysql注入工具_mysql注入常用查询语句_10

floor(rand()*2)这个意思就是在0和1里面取随机值 floor是取整数位,这个的目的就是要出现重复组件

mysql注入常用查询语句 mysql注入工具_单引号_11

count(1)是统计行数

group by 的意思是分组,把所有的列按照属性进行分组

比如(下图的意思就是要统计所有mysql数据库的每一个数据库里面有几个表,group by table_schema 的意思就是按照table_schema进行分组)

(count(1)是统计行数)

mysql注入常用查询语句 mysql注入工具_mysql注入常用查询语句_12

画图展示其原理

先建立临时表 挨个查询,(此处建议看视频)

mysql注入常用查询语句 mysql注入工具_字段_13

为什么是这个结果呢 ?

当mysql里面一个表里面出现两个数据相同的时候,会提示这样的错误叫重复条目(因为组件冲突了)

这个时候我们使用concat的

mysql注入常用查询语句 mysql注入工具_mysql post 注入工具类_14

可以看出当我把版本信息这个组件加入的时候,组件冲突,mysql表就报错了,同时把这个值内容爆出来了

那我们就换 把version()改为database(),数据库就出来了

mysql注入常用查询语句 mysql注入工具_mysql注入常用查询语句_15

好 双select来了

mysql注入常用查询语句 mysql注入工具_mysql post 注入工具类_16

可以用group _concat()但是这里group _concat()不行 于是就limit一行一行来(这个limit之前讲过在post单符号注入)

mysql注入常用查询语句 mysql注入工具_单引号_17

可以爆出第一个表emails

mysql注入常用查询语句 mysql注入工具_mysql注入常用查询语句_18

mysql注入常用查询语句 mysql注入工具_mysql注入常用查询语句_19

limit 4 ,1就爆不出了 说明里面有三个表

再去爆字段

mysql注入常用查询语句 mysql注入工具_mysql注入常用查询语句_20

mysql注入常用查询语句 mysql注入工具_单引号_21

再去爆字段的值

mysql注入常用查询语句 mysql注入工具_字段_22

mysql注入常用查询语句 mysql注入工具_字段_23

再去看看users表中id的字段

mysql注入常用查询语句 mysql注入工具_单引号_24