猜列名

手动猜

’ and 猜的列名 is null–+ 注意:不要忘了–后有空格,否则语法错误
假设我们猜的abc
selece * from table_name(表名) where id=’ 1’ and abc is null–
若abc不存在,肯定无法执行abc is null,就会报错
会报错,说abc这个列不存在。那么我们再换其他字符组合查看是否存在。
在尝试qwd,也会报错。依次一直猜下去。

burpsuit自动猜列名

先要找到列名字典的位置
SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
实际上kali自带了列名的字典,用find搜索如上图找到路劲。
SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
上图:在这些列名的字典里有些行是#开头,我们把这些行去掉(#再mysql里有特殊含义)。

SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
截断流量

SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
点击这里让流量经过。
SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
在history里面找到刚才的流量
SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
流量发送到repeater(连发枪)
SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
找到repeater,点击go。在这里可以把列名换成任意的,然后go执行。右边是反馈。
SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
尝试可以执行后右键将这个发送到intruder。
SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
到intruder
SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
先点击clear清楚默认识别的变量名称。再选中zxz(我们猜测的列名位置)点击add加上符号
SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
load我们的字典。
SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
拉到最下面去掉箭头处,不对这些字符编码。
SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
开始执行。
SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
开始工作。

猜当前表名

上面方法搜索出来的列名是整个数据库所的列名,可能存在于任意表中。我们用确定的列来猜这个列对应的表。

手动猜表名

’ and table.user is null–+ 注意:不要忘了–后有空格,否则语法错误
SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
报错说明表名不存在。
同理,加入这个表名正确,可以db.table.user ,这样猜测数据库名。

自动猜表名

SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
同上,选中表,先clear再add。
SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
找到表名的字典。
SQL注入:5.SQL注入-无权读取information_schema库和拒绝union、order by语句
去除#

列和表对应关系

可以直接一起猜列和表,并且对应关系
’ and users.user is null–+ 注意:不要忘了–后有空格,否则语法错误
需要add两个地方。(users处和user处)。

相关文章: