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等等
标签:字符,版本信息,32,我们,user,SQL,盲注,猜测 来源: https://www.cnblogs.com/Tempt/p/11183881.html