SQL注入——猜测字段名称
之前两篇文章所说的SQL注入手段均是在服务器层面是root权限,而现实的渗透测试过程中,很多都是无权读取information_schema库,并且很多拒绝联合访问Union和order by语句。遇到这些问题时候,就需要我们去爆破猜测一些数据库字开发逻辑,对一些列,表,内容进行猜测
-
猜测某个列
猜测abc这个列是否存在,网页提示:
说明我们所使用的猜测sql语句可以用,剩下的即为猜测过程
很多集成化工具中都有猜测某列的字典文件
在kali中利用find /-name*column*.txt进行查询
但是在字典文件中有#开头的行
我们需要将警号开头的行去除调,并保存到一个新的字典文件
回到burp里面,将我们要测试的列名称变量进行选取
将刚刚生产的文件加载进来
pis:将这里去掉
接着点击菜单栏Intruder进行爆破,根据观察列的长度,从而判断4643长度的列是服务器存在
-
猜测表名
如果我们以及猜出列,基于列名我们可以猜测其表名,'and table.user is null--+ 这里的user列是我们已猜测出来的,table则是我们猜测的表名
测试完之后显示没有找到table.user这个表名,但是说明table这个字段是可以进行爆破
#号处理:cat /usr/share/golismero/tools/sqlmap/txt/common-tables.txt | grep -v ^# >table.txt
然后对table字段进行爆破
基于这个原则逐级对数据库进行爆破
还有一种猜测其他表名称的方法
' and (select count(*) from abc)>0--+
同样用Burp爆破方法进行猜测表名
-
猜测表中的字段:
or表示一真则真,这里注意引号闭合即可
还有一种方式,可以进行模糊查询
%号表示模糊查询,用%将要查询的字段包含起来,like语句进行查询
-
猜测密码:
思路:已经猜测出来账号,可以进而猜测密码,猜测密码时候可以通过密码的MD5值进行猜测,擦测语句:
' or user='admin' and password= ' MD5
用or表示一真则真,说明后面的user和password都要为真,所以user和password连接部分必须为and
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步