实验吧的一道web题:抓住关键字:快!
这是一类型题目,就是要求计算或者得到http响应中的表达式或值并用post请求返回结果。实质就是:快速反弹包含正确信息的post请求。
解题步骤:
1.抓包,先看一下响应。如图:
看到了base64编码的flag,作为了响应头的内容了。注释让我们用post方法传一个名为key的参数到服务端。倘若我们这时候从响应中解码再传过去,肯定是的不到flag的,因为下一次请求时返回的响应头中的falg是会改变的。
2.写脚本
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 # 获取相应头
flag = base64.b64decode(head['flag']).decode().split(':')[1] #获取响应头中Flag ,注意b64decode()解码后是一个二进制类型,要用decode()转化为字符串类型
postData = {'key': flag} # 构造Post请求体
result = s.post(url,data=postData)
print(result.text)
即可得到flag。