本题用常规方法无法做出来,一直反馈的页面如下:
我一直在考虑什么叫做能否再快一点?这里获取到FLAG,BASE64解码后用POST方式提交还有更快的方式吗?看了其他人的帖子,发现是我找错方向了。这里的更快是要更快实现提取数据,提交数据过程,后台可能有一个时间限制,超过这段时间就无法获取flag了。所以,这里需要用代码实现整个过程
代码如下:以后如果碰到类似的题,可以修改代码来实现功能
import requests
import base64
url = "http://ctf5.shiyanbar.com/web/10/10.php" # 目标URL
s = requests.Session() # 获取 Session
response = s.get(url) # 打开链接
head = response.headers # 获取响应头
F=head['FLAG'].encode()
print (F)
flag = base64.b64decode(F)# 获取相应头中的Flag,这里得到的flag是bytes型
flag=flag.decode().split(':')[1]
print(flag)
postData = {'key': flag} # 构造Post请求体
result = s.post(url=url, data=postData) # 利用Post方式发送请求
# (注意要在同一个Session中 , 有的时候还需要设置Cookies , 但是此题不
print (result.text) # 打印响应内容