猜列名
手动猜
’ and 猜的列名 is null–+ 注意:不要忘了–后有空格,否则语法错误
假设我们猜的abc
selece * from table_name(表名) where id=’ 1’ and abc is null–
若abc不存在,肯定无法执行abc is null,就会报错
会报错,说abc这个列不存在。那么我们再换其他字符组合查看是否存在。
在尝试qwd,也会报错。依次一直猜下去。
burpsuit自动猜列名
先要找到列名字典的位置
实际上kali自带了列名的字典,用find搜索如上图找到路劲。
上图:在这些列名的字典里有些行是#开头,我们把这些行去掉(#再mysql里有特殊含义)。
截断流量
点击这里让流量经过。
在history里面找到刚才的流量
流量发送到repeater(连发枪)
找到repeater,点击go。在这里可以把列名换成任意的,然后go执行。右边是反馈。
尝试可以执行后右键将这个发送到intruder。
到intruder
先点击clear清楚默认识别的变量名称。再选中zxz(我们猜测的列名位置)点击add加上符号
load我们的字典。
拉到最下面去掉箭头处,不对这些字符编码。
开始执行。
开始工作。
猜当前表名
上面方法搜索出来的列名是整个数据库所的列名,可能存在于任意表中。我们用确定的列来猜这个列对应的表。
手动猜表名
’ and table.user is null–+ 注意:不要忘了–后有空格,否则语法错误
报错说明表名不存在。
同理,加入这个表名正确,可以db.table.user ,这样猜测数据库名。
自动猜表名
同上,选中表,先clear再add。
找到表名的字典。
去除#
列和表对应关系
可以直接一起猜列和表,并且对应关系
’ and users.user is null–+ 注意:不要忘了–后有空格,否则语法错误
需要add两个地方。(users处和user处)。