CTF--速度要快

一、原网页:

二、步骤:

1.查看源码:

需要用post的方式,传输margin值

2.键入F12查看网络:

在响应标头中,flag的内容被Base加密

3.Base解密:

提交Mzl0MTQ3后,发现flag不对

再次Base解密:

提交324147,flag还是不对

根据题目“速度要快”,推测每次刷新页面后,flag的值都会不同

5.反复刷新,查看响应标头:

页面刷新后,flag值不同,推测正确

涉及速度问题,需要编写脚本

6.编写脚本:

(1)脚本:

import requests
import base64

url = "http://117.72.52.127:13539/"
s = requests.session()
headers = s.get(url).headers

mid = base64.b64decode(headers['flag'])
mid = mid.decode()
flag = base64.b64decode(mid.split(':')[1])

data = {'margin': flag}
print(s.post(url, data).text)

(2)脚本运行:

(3)脚本解析:

import requests # 导入 requests 模块,用于发送 HTTP 请求
import base64 # 导入 base64 模块,用于 Base64 编码和解码

url = "http://117.72.52.127:13539/" # 定义目标 URL
s = requests.session() # 创建一个会话对象,方便后续请求中保持会话状态(如 cookies 等)
headers = s.get(url).headers # 发送一个 GET 请求到目标 URL,并获取响应的 headers

# 从响应的 headers 中提取名为 'flag' 的值,并进行 Base64 解码
mid = base64.b64decode(headers['flag']) # 将 Base64 编码的字符串解码为字节
mid = mid.decode() # 将字节解码为字符串
flag = base64.b64decode(mid.split(':')[1])
# 对解码后的字符串进行分割,假设格式为 "key:value",提取 'value' 部分
# 例如,假设 mid 为 "key:base64_encoded_value",则 mid.split(':')[1] 提取 "base64_encoded_value"
# 再次对提取的 'value' 部分进行 Base64 解码

data = {'margin': flag} # 构造 POST 请求的数据,其中 'margin' 字段的值为解码后的 flag
print(s.post(url, data).text) # 发送一个 POST 请求到目标 URL,附带构造的数据,并打印响应的文本内容

三、相关题型:

CTF--秋名山车神

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值