总不能真的算1000次吧。。。。
发现数字是且仅是在两个br中的
脚本:
import requests
import re
import time
url = 'http://43428b8d-f012-4d75-90d5-83deac9826ed.node4.buuoj.cn:81/index.php'
session = requests.session() # 创建一个Session对象,用于保存HTTP请求的状态信息
req = session.get(url).text # 向目标网站发送HTTP GET请求,并将返回的HTML文本保存到req变量中
flag = ""
for i in range(1010):
try:
result = re.findall("\<br\>\<br\>(\d.*?)\<br\>\<br\>",req) # 从req中匹配出类似<br><br>13<br><br>的字符串,提取其中的数字部分,并保存到result列表中
result = "".join(result) # 将result列表中的元素拼接成一个字符串
result = eval(result) # 将result字符串中的表达式求值,得到计算结果
print("time: "+ str(i) +" "+"result: "+ str(result))
data = {"answer" : result}
req = session.post(url,data).text
if "flag{" in req:
print(re.search("flag{.*}", req).group(0)[:50]) # 从返回的HTML文本中提取flag,并打印前50个字符
break
time.sleep(0.1)
except:
print("[-]")