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

web攻防之SSTI 注入漏洞

知识简介 : 模版引擎和框架的区别

ssti的中文翻译 : 服务端的模版的注入 

模版引擎 :前端的用于装饰优化html的模版 最简单的就是在腾讯会议中的聊天功能

框架 : 这个是一套独立存在的逻辑 如TP他是一个区别于php语法的后端逻辑(框架的作用就是 优化后端的功能和安全性)

两者的共性就是为了省时

怎么发现对方的web套用了模版引擎

主要是看页面的规律性和是不是非常的板正,大部分的web都是套用的模版 手写的工程量是非常大的

漏洞的原理

这个就类似于 框架的rce 模版引擎会有独特的语法,如果对方的模版引擎中有写入的这个功能,那就会导致恶意的模版引擎的语法的写入,再者没有对其进行过滤从而导致了,ssti注入

漏洞利用的逻辑思路

1、找寻是什么模版引擎

这个是模版对应的语法,所以我们的思路就是先找对方是什么语言写的 web 然后在语言中进行全扫即可,如对方使用的是php 那就是把php类的所以语法进行写到注入点进行测试

ssti的漏洞的场景就是需要在有输入的地方,并且这个输入之后会有输出的回显,这样就能进行操作

案例一:

实验:基本服务器端模板注入 |网络安全学院

靶场要求是让我们使用模版的rce删除morale.txt

我们随便点击一个商品 

发现回显的地方  这个英文的意思是商品缺货 然后这个注入点让我们想到的漏洞 1、xss 2、sql注入

然后就是我们的模版rce

工具介绍 : SSTImap

安装一下依赖

使用 :

python sstimap.py -u "https://0a6800de041a131880a644a800e2001d.web-security-academy.net/?message=*"

这个工具的用法和sqlmap差不多  这个就表示成功 然后判断ssti是ERB类型的

这个工具有个不好的地方就是不会保留缓存

我们可以指定类型之后使用他的后渗透模式,也可以自己构造,看着上面的模版图

erb语法  

<%= exec 'ls -al' %>

然后就发现我们的语句被嵌套到了这个模版中去 , 然后进行了前端的回显

或者使用工具的自动模式 :

第二个靶场

实验:基本服务器端模板注入(代码上下文) |网络安全学院

这个就比较隐晦了  不是那种明显的,这个其实是模版的语法用于post包中

登录提示给的账号密码之后,随便进入到一个文章中去 

发现有个评论的功能 : 联想到ssti的前端模版就是一些输入框,评论区或者是聊天的地方

我们先对评论进行ssti试一下 先抓个包 :

我们首先猜测的是在 comment 然后这个内容会自动的加载到前端的模版中去

最后测试发现失败了,那就联系到名字也是会在前端进行回显

测试修改名字​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​

然后返回我们的评论区 :

发现 7*7被执行了 所以这个就是注入点

最终的payload 
blog-post-author-display=user.name}}{%25+import+os+%25}{{os.system('ls%20-al')

这个不能直接使用工具测试出来,手工是最好的

实验三

Login - PortSwigger

这个靶场模拟的是 后台ssti提取的一个场景

后台有个模拟修改前端的代码一个功能

可以进行编辑然后 就能在前端回显

payload :

模版 :Freemarker:
<#assign test="freemarker.template.utility.Execute"?new()> ${test("ls")}

之后这里就会出现

http://www.lqws.cn/news/94465.html

相关文章:

  • Windows 下部署 SUNA 项目:虚拟环境尝试与最终方案
  • 【从0-1的HTML】第2篇:HTML标签
  • Double/Debiased Machine Learning
  • 从仿射矩阵得到旋转量平移量缩放量
  • 【氮化镓】GaN HMETs器件物理失效分析进展
  • 【Java Web】7.事务管理AOP
  • 下载并运行自制RAG框架
  • PyTorch——线性层及其他层介绍(6)
  • Apache Iceberg 如何实现分布式 ACID 事务:深度解析大数据时代的可靠数据管理
  • Java面试八股--07-项目篇
  • 极智项目 | 基于PyQT+Whisper实现的语音识别软件设计
  • 从一堆数字里长出一棵树:中序 + 后序构建二叉树的递归密码
  • 懒猫微服进阶心得(五):使用懒猫微服做Ventoy启动盘
  • ArrayList 类
  • Vue混入
  • Nginx 的配置文件
  • OpenCV 滑动条调整图像亮度
  • [yolov11改进系列]基于yolov11使用FasterNet替换backbone用于轻量化网络的python源码+训练源码
  • 谷歌地图苹果版v6.138.2 - 前端工具导航
  • DrissionPage 性能优化实战指南:让网页自动化效率飞升
  • MySQL 8 完整安装指南(Ubuntu 22.04)
  • 【R语言编程绘图-mlbench】
  • 实验设计与分析(第6版,Montgomery著,傅珏生译) 第9章三水平和混合水平析因设计与分式析因设计9.5节思考题9.1 R语言解题
  • 实验设计与分析(第6版,Montgomery著,傅珏生译) 第10章拟合回归模型10.9节思考题10.1 R语言解题
  • R语言使用随机过采样(Random Oversampling)平衡数据集
  • RagFlow优化代码解析
  • 【Ragflow】25.Ragflow-plus开发日志:excel文件解析新思路/公式解析适配
  • Ubuntu 挂载新盘
  • 《对象创建的秘密:Java 内存布局、逃逸分析与 TLAB 优化详解》
  • TDengine 高级功能——流计算