Rohitberiwala/SSTI-to-RCE-Python-Eval-Bypass
GitHub: Rohitberiwala/SSTI-to-RCE-Python-Eval-Bypass
演示在Python Flask应用中通过十六进制编码绕过正则过滤,利用f-string中不安全eval()实现从SSTI到RCE的漏洞利用PoC。
Stars: 1 | Forks: 0
# SSTI-to-RCE-Python-Eval-Bypass
一个概念验证利用程序,演示了 Python Flask 应用程序中的服务端模板注入 (SSTI)。该利用程序使用十六进制编码绕过严格的正则过滤器,并通过动态 f-string 格式化中不安全的 eval() 调用实现远程代码执行 (RCE)。
# 🚀 SSTI-to-RCE-Python-Eval-Bypass



## 📌 项目概述
本仓库包含针对基于 Python 的 Web 应用程序中发现的服务端模板注入 (SSTI) 漏洞的概念验证 利用程序。
该利用程序针对 f-string 模板中 eval() 函数的不安全使用。它具体演示了如何使用十六进制编码绕过严格的字母数字正则过滤器,从而实现完整的远程代码执行 (RCE)。
## 🛠️ 关键特性
* 过滤器绕过:使用 bytes.fromhex() 执行命令,无需使用空格或正则表达式阻止的特殊字符。
* 动态 Payload:根据用户输入自动生成反向 shell payload。
* 自动化执行:处理触发漏洞所需的 XML 结构和请求头。
* 轻量级:使用标准 Python 库构建(`urllib`、`binascii`)。
## 🚀 使用说明
### 1. 启动监听器
打开终端并启动 netcat 监听器以捕获反向 shell:
```
nc -lvnp 4444
Run the Exploit
Execute the script by providing the target IP, your listener IP, and the port:
python3 exploit.py
The vulnerability exists because the application takes user input and passes it into a dynamic f-string processed by eval():
# 应用程序不安全地使用用户输入评估模板
return eval(f"f'''{user_input_template}'''")
```
标签:CISA项目, DNS 反向解析, Eval 注入, Flask 漏洞, F-string, PoC 验证, RCE, SSTI, Web 安全, 动态执行, 十六进制编码, 反向 Shell, 攻击脚本, 服务端模板注入, 正则绕过, 绕过技术, 编程工具, 远程代码执行, 逆向工具