bugku-web-速度要快
查看源代码,发现需要post穿参,参数margin:
使用BP抓包或者F12查看网络状态,响应头返回一个flag字样的base64加密的值:
flag:
6LeR55qE6L+Y5LiN6ZSZ77yM57uZ5L2gZmxhZ+WQpzogT0RnMk9UWXg=
base64解密:
跑的还不错,给你flag吧: ODg2OTYx
再次base64解密:
使用post,margin=886961,穿参发现不对:
所以需要重新想思路,再重新发包发现flag会变,因此我们使用脚本来请求flag的值:
思路是这样的,使用session控制回话,之后获取响应头flag值之后进行base64解码,得到后面的base64再次进行解码,之后将该值穿参给margin看反应结果:
使用python2实现,通过Session对象,您可以在请求中保留某些参数。它还会在所有从Session实例发出的请求中保留cookie。
首先说一下,为什么要进行会话保持的操作?url_session = requests.Session()
requests库的session会话对象可以跨请求保持某些参数,说白了,就是比如你使用session成功的登录了某个网站,则在再次使用该session对象求求该网站的其他网页都会默认使用该session之前使用的cookie等参数
尤其是在保持登陆状态时运用的最多,在某些网站抓取,或者app抓取时,有的时强制登陆,有的是不登陆返回的数据就是假的或者说是不完整的数据,那我们不可能去做到每一次请求都要去登陆一下怎么办,就需要用到保持会话的功能了,我们可以只登陆一次,然后保持这种状态去做其他的或者更多的请求。
# -*- coding: UTF-8 -*-
import requests
import base64
url = 'http://123.206.87.240:8002/web6/'
url_session = requests.Session()
url_req = url_session.get(url)
#获取响应头
flag_header = url_req.headers['flag']
print flag_header
#进行base64解密
enba_flag_header = base64.decodestring(flag_header)
print enba_flag_header
#获取:后面的字符串再次进行base64解密
print base64.decodestring(enba_flag_header.split(': ')[1])
#进行post穿参,打印之后内容
post = url_session.post(url,{'margin':base64.decodestring(enba_flag_header.split(': ')[1])})
print post.text
脚本运行后得到flag,KEY{111dd62fcd377076be18a}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)