特别声明:该文章只运用于学习安全测试交流之用,请勿用于其他
时间盲注原理
当页面既不回显数据,也不回显错误信息时就不能通过页面来判断是否存在SQL注入漏洞
联合查询、报错查询和布尔盲注在此时就不起作用了
时间盲注利用时间敏感性SQL来判断是够存在注入漏洞
核心语法:if(left(user(),1)= ‘a’,0,sleep(3));
IF(expr1,expr2,expr3)
如果 expr1 是TRUE (expr1 <> 0 and expr1 <> NULL),则 IF()的返回值为expr2; 否则返回值则为 expr3。IF() 的返回值为数字值或字符串值,具体情况视其所在语境而定。
Sleep(3)
程序休眠一定时间
手动注入,确认是否存在注入点
http://192.168.109.35:5679/Less-10/?id=1" and sleep(5) %23
页面返回发生延迟,所以存在注入点
图-1利用substr函数来判断表名,当命中时程序程序休息2s返回响应
" and if(ascii(substr((select table_name from information_schema.tables where table_schema = database() limit 0,1),1,1))=48,sleep(2),0)--+
利用Python脚本来批量执行
图-2结果:
图-3获取所有表名
图-4结果:
网友评论