时间盲注小知识
1.时间盲注
代码存在sql注入漏洞,然而页面既不会回显数据,也不会回显错误信息,语句执行后也不提示真假,我们不能通过页面的内容来判断。这里我们可以通过构造语句,通过页面响应的时长,来判断信息,这既是时间盲注
2.时问盲注攻击原理
利用sleep()、benchmark()等函数让mysql执行时间变长经常与if(expr1, expr2, expr3)语句结合使用,通过页面的响应时间来判断条件是否正确。
if(expr1,expr2, expr3)含义是如果expr1是 True,则返回expr2,否则返回expr3。
3.时间型盲注特点
通过时间回显的延迟作为判断payload:1’ and sleep(5)——+有延迟则考虑时间盲注。
利用sleep()或benchmark()函数延长 mysql的执行时问
与if()搭配使用
4.时间盲注常用函数
left (m,n)——从左向右截取字符串m返回其前n位
substr(m,1,1)——取字符串m的左边第一位起,1字长的字符串
ascii(m)——返回字符m的ASCII码
if(str1,str2,str3)——如果str1正确就执行str2,否则执行str3
sleep(m)——使程序暂停m秒
length(m)——返回字符串m的长度
count(column_name)——返回指定列的值的数目
5.时间型盲注payload: if(expr1, expr2 , expr3)语义解析
对expr1进行布尔判断,如果为真,则执行expr2,如果为假,则执行expr3常用payload:
If (length(database())>1,sleep(5),1)
如果数据库名字符长度大于1为真,mysql休眠5秒,如果为假则查询1。而查询1的结果,大约只有几十毫秒,根据Burp Suite中页面的响应时间,可以判断条件是否正确。
6.时间盲注攻击实战
判断数据库名的长度
爆库名
爆表名
爆字段
爆数据