焚靖是一个针对Jinja2 SSTI的命令行脚本,具有强大的自动绕过WAF功能
安装
使用pip(最省事)
1 | pip install fenjing |
也可下载并运行docker镜像
1 | docker pull marven11/fenjing |
还可以直接下载源码
1 | git clone https://github.com/Marven11/Fenjing |
下载后可以选择直接使用(先确保用pip安装完依赖)
1 | python -m pip install -r requirements.txt |
也可以手动构建一个docker镜像
1 | docker build -t fenjing . |
使用
1 | python -m fenjing --help |
也可做为一个python模块集成进脚本中使用
1 | from fenjing import exec_cmd_payload |
支持的绕过
'
和"
的绕过- 绝大部分关键字的绕过
- 自然数的绕过
- 下划线
_
+
和-
~
[
下标访问的绕过{{}}
标签的绕过
使用示例
[GDOUCTF 2023]<ez_ze>
打开题目发现是一个使用POST提交表单的网页,检查响应头的Sever
字段,发现是Werkzeug/2.2.3 Python/3.8.16
,所以应该是一个flask程序,考虑SSTI。
使用一些常见的jinja2 SSTI payload,发现都会被WAF给过滤。
尝试焚靖一把梭:
1 | python -m fenjing crack -u http://node1.anna.nssctf.cn:28140/get_flag -i name |
可见焚靖的WAF绕过能力还是非常强大的
参考资料
Marven11/Fenjing: 一个类似SQLMap的Jinja2 SSTI利用脚本 | A SQLMap-like Jinja2 SSTI cracker(官方GitHub页面)
想找一个通用的SSTI payload生成器?
可以去尝试一下tplmap