一、首先查看源码,提示要用post方法提交margin的值

二、接下来就是要找到对应的margin的值,查看下响应头,可以看到有熟悉的flag字段,且是以“=”结尾,应该就是“base64”编码,解码后得到:“跑的还不错,给你flag吧: NzQ5MTAy”,大胆猜测“NzQ5MTAy”也是“base64”编码,解码后“749102”,这个数值应该就是margin的值。

三、直接用post方法提交margin的值,发现行不通。

四、我们在抓包中发现请求头中有PHPSESSID=v4f3juaih9ui07l4kfr1mbobp09ttm6e,所以应该是提交margin要与获取页面要使用同一个session,代码如下:
import requests
import base64
s = requests.Session()
URL = "http://123.206.87.240:8002/web6/"
res = s.get(URL)
flag = base64.b64decode(res.headers['flag'])
margin_value = flag.split(': ')[1]
post_res = s.post(URL,data={"margin":base64.b64decode(margin_value)})
print(post_res.text)
本文介绍了一种从响应头中解码Flag并获取Base64编码的Margin值的方法,通过使用同一Session提交该值来解决特定Web挑战。文章详细解释了如何利用Python的requests和base64库实现这一过程。

被折叠的 条评论
为什么被折叠?



