盲注学习(sqli-labs 8(布尔盲注) 9(时间盲注))


所以称为盲注是因为他不会根据你sql注入的攻击语句返回你想要知道的错误信息。


盲注分为两类:
    1.布尔盲注 布尔很明显Ture跟Fales,也就是说它只会根据    你的注入信息返回Ture跟Fales,也就没有了之前的报错信息。
    2.时间盲注 界面返回值只有一种,true 无论输入任何值 返回情况都会按正常的来处理。加入特定的时间函数,通过查看web页面返回的时间差来判断注入的语句是否正确。

需要用到的函数:

Length()函数 返回字符串的长度
Substr()截取字符串
Ascii()返回字符的ascii码
sleep(n):将程序挂起一段时间 n为n秒
if(expr1,expr2,expr3):判断语句 如果第一个语句正确就执行第二个语句如果错误执行第三个语句
首先利用length()判断数据库长度;
盲注学习(sqli-labs 8(布尔盲注) 9(时间盲注))_第1张图片

接下来利用substr函数与ascii函数构造猜测数据库名ascii码的值的语句

通过二分法找到第一个字母

盲注学习(sqli-labs 8(布尔盲注) 9(时间盲注))_第2张图片

115即字母s 依次猜解

然后再猜解表 即把 database() 改成(select table_name from information_schema.tables where table_schema="security")

盲注学习(sqli-labs 8(布尔盲注) 9(时间盲注))_第3张图片

101即字母小写字母e 依次爆破 对了 记得用length查下字母长度

剩下的猜列名同理


既然知道是布尔值的盲注,可利用sqlmap来注入

通过    --technique指定注入类型    

--bath 让sqlmap自动输入

--dbms mysql 指定数据库系统为mysql绕过sqlmap的自动检测

-v 显示 (0-6)

盲注学习(sqli-labs 8(布尔盲注) 9(时间盲注))_第4张图片


emmmm  出现太多payload

还是把-v的等级改成 0吧

盲注学习(sqli-labs 8(布尔盲注) 9(时间盲注))_第5张图片


盲注学习(sqli-labs 8(布尔盲注) 9(时间盲注))_第6张图片

刷了半个小时抖音终于出来了

盲注学习(sqli-labs 8(布尔盲注) 9(时间盲注))_第7张图片


时间盲注

利用的函数为sleep() if()

先判断是否为时间注入

盲注学习(sqli-labs 8(布尔盲注) 9(时间盲注))_第8张图片


再猜解数据库 ,通布尔盲注一样

同理用sqlmap简单



你可能感兴趣的:(sqli-labs)