任务1_答题系统服务器
答题系统存在隐藏信息,请找出隐藏信息,并将flag提交。flag 格式:flag{<flag值>}
1.答题系统存在隐藏信息,请找出隐藏信息,并将flag提交。flag 格式:flag{<flag值>}
方法一:
import re
import requests
# 创建一个session对象。(因为计算出结果后需要再次发送数据,而session对象可以保留会话,第二次发送时带上第一次时的消息头)
s = requests.Session()
# 访问题目网页,得到内容
r = s.get('http://192.168.14.1/index.php')
# 正则匹配过滤数字和+~x范围内的所有字符,+号代表匹配一个或多个。
rule = re.compile(r'\d+[+-x]+')
# 将过滤出来的结果放进number_str
number_str = rule.findall(r.text)[1]
print(number_str)
# 正则匹配将x替换成*
rec = re.sub("x","*",number_str)
# 前面匹配的时候将=?也匹配进去了,所以从倒数第二位开始计算
res = eval(rec[:-2])
print(res)
# 使用字典将res对应answer
data = {'answer': res}
# 访问检查页面,将res放入数据中进行检测,成功则返回flag
r = s.post('http://192.168.14.1/check.php',data=data)
print(r.text)
方法二:
stop(100000)进行延迟
方法三:
import requests,re
url="http://172.16.1.101/index.php"
DATA_RE=re.compile(r"(.*?)=\?")
s=requests.Session()
content=s.get(url=url).text
n=DATA_RE.search(content).group(0).strip("=?")
n=n.replace("x","*")
data={
"answer": eval(n)
}
flag=s.post(url="http://172.16.1.101/check.php",data=data).text
print(flag)
Flag:flag{ab786647-19b9-489e-864f-0c06436aa436}