原题链接:http://120.24.86.145:8002/web6/
第一步:查看了源码,得到信息—now you have to post the margin what you find!
分析,需要一个带margin属性的post请求,猜测解题点应该再margin上面,而且需要构造请求
第二步,查看一下正常的请求头,发现里面带一个flag,关键点在这
然后通过python,获取header里面的flag,并构造post请求,把flag放在margin里面发送出去
import requests
import base64
#bugku --- 速度要快
url = 'http://120.24.86.145:8002/web6/'
req = requests.session()
res = req.get(url)
#获取请求头中的flag
flag = res.headers['flag']
#对flag进行base64解码 --- 得到的是bytes类型
flag = base64.b64decode(flag)
#把bytes类型转换成str类型 --- 即对其进行解码 详解请看 https://blog.youkuaiyun.com/lanchunhui/article/details/72681978
flag = bytes.decode(flag)
#截取字符串后面的flag字段
flag = flag[flag.index(':') + 2:]
#然后再对其进行base64解码
flag = base64.b64decode(flag)
#根据题目提示 now you have to post the margin what you find --- 需要根据margin属性进行post请求提交
#构造data,另margin属性为爆破出来的txt
data = {'margin': flag}
#通过会话的post请求,传递data
rs = req.post(url, data)
#获取页面内容
key = rs.content
#转成str格式
key = bytes.decode(key)
print(key)
最后得到flag值