盲注是注入的一种,指的是在不知道数据库返回值的情况下对数据中的内容进行猜测,实施SQL注入。盲注一般分为布尔盲注和基于时间的盲注和报错的盲注。

  • Length():函数 返回字符串的长度
  • Substr():截取字符串
  • Ascii():返回字符的ascii码
  • sleep(n):将程序挂起一段时间 n为n秒
  • if(expr1,expr2,expr3): 判断语句 如果第一个语句正确就执行第二个语句如果错误执行第三个语句
    如果上面的函数被禁用,也有相应的函数替换

less 5

布尔注入

  1. 输入为真,显示如下
    sqli-labs笔记(4)盲注(布尔,时间)
    输入为假sqli-labs笔记(4)盲注(布尔,时间)
  2. 构造length(database()) > 9 ,false
    sqli-labs笔记(4)盲注(布尔,时间)

length(database()) =8,truesqli-labs笔记(4)盲注(布尔,时间)
3. 自动进行长度**
sqli-labs笔记(4)盲注(布尔,时间)
判断出长度为8
sqli-labs笔记(4)盲注(布尔,时间)
4. 对数据库名进行**sqli-labs笔记(4)盲注(布尔,时间)

  • 对数据库名,字符逐一**
    第一个字符 ascii(substr(database(),?,1)) = ?
    sqli-labs笔记(4)盲注(布尔,时间)
    前面知道数据库名是8个字符
    sqli-labs笔记(4)盲注(布尔,时间)
    ascii 码共 128个
    sqli-labs笔记(4)盲注(布尔,时间)
    使用社区版bp超慢QAQ
    sqli-labs笔记(4)盲注(布尔,时间)
    sqli-labs笔记(4)盲注(布尔,时间)
    sqli-labs笔记(4)盲注(布尔,时间)

时间盲注

使用 if (条件,sleep(3),0),若条件为1,sleep 3秒,为0不sleep

bash 192.168.2.135/Less-9/?id=1' or if(ascii(substr(database(),1,1)=7),sleep(3),0) #
sqli-labs笔记(4)盲注(布尔,时间)

相关文章: