BUUCTF [CISCN2019 华北赛区 Day2 Web1]Hack World

发布时间 2023-08-30 15:18:48作者: Amsterdamnit
  1. 判断过滤哪些关键词和字符
    使用Burp Suite的Intruder,字典内容就是常见的SQL注入的一些函数名、符号等。
    buuoj有访问限制,访问太快会提示429 Too Many Requests,所以,需要设置一下延时。

返回长度有493、492、482、472,分别对应不同的回显。

  • 493:Hello, glzjin wants a girlfriend.
  • 492:Error Occured When Fetch Result.
  • 482:SQL Injection Checked.
  • 472:bool(false)

其中主要是482的过滤和472返回的bool,也没有其它回显,所以猜测布尔盲注。但是空格、or、and等都被过滤了

  1. SQL异或运算
    大概在这里应用就是假^假=真真^真=假假^真=真真^假=真
    当我们查询 1^00^1、和1的回显是正常的,而查询1^10^0会有报错提示。
    所以结合SQL语句,我们可以构造0^payload,若为payload结果真,则返回...;反之...
    因为空格被过滤,所以用括号来代替空格
    构造payload:0^(ascii(substr((select(flag)from(flag)),1,1))>1)
  • substr():截取查询结果的从第一字符开始的一个字符
  • ascii():ascii值>1指这个值不为NULL

盲注python脚本:





参考链接:
https://blog.csdn.net/TM_1024/article/details/106978766