SQL盲注

盲注的原因是因为不显示数据库报错信息,导致我们没法知道注入的信息是否与服务器发生交互,无法直观的查看我们注入的数据对错
 
但是我们还是可以通过一些逻辑关系去判断是否能注入
例如:
如果我们通过1' and 1=1--+
发现和我们正常输入1的结果一致,同理我们可以进行后续的注入测试
 
结合之前一篇章节说过,我们也可以对其字段进行猜测
例如:
思路:前面为真,后面猜测user这一列中没有空,如果为真则显示1号数据,当然我们也可以猜测user这一列有Null,或者我们可以猜测除了user其他列
根据列名,也可以继续猜测表名,这里替换就是表名table
1'and table.user is not null --+  一层一层向上进行爆破查询
 
猜测其他表: 1' and(select count(*)from guestbook)>0--+
 
模糊查询:1' or user like '%a%  模糊查询这里最好用or 那么此时的结果可能不是1这条结果
这里的方法还是通过burp进行暴力破解
 
Pis:
补充一种方式可以查询出服务器系统的版本信息
1' and ORD(MID((VERSION()),1,1))&32>0--+
这句话的意思 VERSION为版本信息 MID为截断功能例如对helao进行截取后面加上2,4,就从第二个e开始截取,到a停止截取到的字符串为ela,ORD功能为转换字符为ASCLL码。而后面的&32则是对一个字符的二进制的32那一位进行读取,这里解释下什么叫32那一位
1    1    1    1    1   1   1   1
128  64   32   16   8   4   2   1
这样我们可以对一个字符进行逐个位的读取,看他是否大于0判断这个字符的ASCLL对应10进制是多少,从而得到这个字符具体是什么,这样一位一位的猜测,最后可以得到服务器的版本信息
同理举一反三我们可以查USER,database等等
 
 
posted @ 2019-07-14 12:36  峰中追风  阅读(812)  评论(0编辑  收藏  举报

___________________________________________________________________________________________没有白跑的路