攻防世界-web-Confusion1

1. 题目描述

打开链接,如图

点击Login和Rigister,都报错

但是有提示

指出了flag所在的位置,题目中直接能获取到的信息暂时就这么些了

2. 思路分析

既然告诉了我们flag文件的位置,那么要读取到这个文件,要么是任意文件下载,要么是命令注入。这里没有文件下载的接口,也没看到有任何外部输入,尝试扫描下:

发现存在/cgi-sys相关的借口,但是访问时发现报错:

说明此路不通。

网上查找资料发现题目中图片就给出了提示,可能是SSTI,试一下:

发现确实存在SSTI,那么这道题的思路就明确了:

利用SSTI读取flag文件中的内容

3. 解题过程

既然存在SSTI,我们试试常用的SSTI方法

试了下class,subclass,mro,常用方法都被过滤掉了,看能否找到一个没有被过滤的

request没过滤,那么我们考虑通过request.args的方式进行绕过,将class等被过滤的字符串设置成参数,传递给request.args,比如想要获取class,使用{{""[request.args.a]}}?a=__class__

那么我们现在需要读取文件/opt/flag_1de36dff62a3a54ecfbc6e1fd2ef0ad1.txt

正常的SSTI应该是:

{{"".__class__.__mro__[2].__subclasses__[40]('/opt/flag_1de36dff62a3a54ecfbc6e1fd2ef0ad1.txt').read()}}

利用request.args进行绕过就变成了:

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

使用该请求,成功获取flag

flag为cyberpeace{24bc59019e22a893305a7496e638526f}

4. 总结

这道题考查的是SSTI的绕过(这个考查点的识别需要一定的知识积累)。SSTI也是非常灵活的一种注入方式,绕过方式很多,request算是常见的一种绕过手段,正好积累下经验

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

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

相关文章

设计模式-创建型模式-工厂方法模式

一、什么是工厂方法模式 工厂模式又称工厂方法模式,是一种创建型设计模式,其在父类中提供一个创建对象的方法, 允许子类决定实例化对象的类型。工厂方法模式是目标是定义一个创建产品对象的工厂接口,将实际创建工作推迟到子类中。…

双流网络论文精读笔记

精读视频:双流网络论文逐段精读【论文精读】_哔哩哔哩_bilibili Two-Stream Convolutional Networks for Action Recognition in Videos 传统的神经网络难以学习到物体的运动信息,双流网络则通过光流将物体运动信息抽取出来再传递给神经网络 给模型提供…

未来制造业的新引擎:工业机器人控制解决方案

制造业正经历着一场革命性的变革 在这个变革的浪潮中,工业机器人成为推动制造业高效生产的关键力量。然而,要发挥机器人的最大潜力,一个强大而智能的控制系统是必不可少的。在这个领域,新一代的工业机器人控制解决方案正崭露头角&…

Gradle常用命令与参数依赖管理和版本决议

一、Gradle 常用命令与参数 本课程全程基于 Gradle8.0 环境 1、Gradle 命令 介绍 gradle 命令之前我们先来了解下 gradle 命令怎么在项目中执行。 1.1、gradlew gradlew 即 Gradle Wrapper,在学习小组的第一课时已经介绍过了这里就不多赘述。提一下执行命令&am…

python解决登录图形验证码

摘要:测试过程中经常遇到图片验证码,以下主要是调用百度OCR图片识别获取验证码,实现登录 1、百度云申请创建应用

Autoware.universe部署06:使用DBC文件进行UDP的CAN通信代码编写

目录标题 一、安装DBC文件编辑工具VectorCANdb二、编写DBC文件2.1 CAN通信协议2.2 编写DBC文件2.2.1 根据CAN协议设置signals2.2.2 设置报文2.2.3 建立节点 三、根据DBC文件编写ROS2驱动程序四、实际通信调试 根据CAN协议编写DBC文件,通过DBC文件编写ROS2包进行UDP通…

【前端】前端监控⊆埋点

文章目录 前端监控分为三个方面前端监控流程异常监控常见的错误捕获方法主要是 try / catch 、window.onerror 和window.addEventListener 等。Promise 错误Vue 错误React 错误 性能监控用户行为监控常见的埋点方案来源 前端监控分为三个方面 异常监控(监控前端页面…

2014年6月18日 Go生态洞察:Go 1.3 版本发布

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

linux之 服务器ping百度能通,ping其他网址不通

表症问题 linux上ping域名解析出来的ip地址不正确 linux服务器ping百度能通,ping其他网址不通 linux上ping域名解析出来的ip地址不正确 ping 百度可以,说明dns解析是没问题的 但是,ping 其他网址不通,说明是 请求的其他网址的问…

Android studio 迁移之后打开没反应

把Android studio由d盘迁移到c盘,点击没反应; 需要把C:\Users\xxxx\AppData\Roaming\Google\AndroidStudio2022.3 目录下的studio64.exe.vmoptions 修改为C:,删除该文件会导致无法安装app。 里面配置了一个

改进YOLOv5 | C3模块改动篇 | 轻量化设计 |骨干引入动态卷积|CondConv

🗝️YOLOv5实战宝典--星级指南:从入门到精通,您不可错过的技巧   -- 聚焦于YOLO的 最新版本, 对颈部网络改进、添加局部注意力、增加检测头部,实测涨点 💡 深入浅出YOLOv5:我的专业笔记与技术总结   -- YOLOv5轻松上手, 适用技术小白,文章代码齐全,仅需 …

什么是应急演练脚本?其设计原则是什么?

应急演练脚本是一种系统性、有计划的模拟性文件,旨在测试和评估组织在紧急情况下的应对能力。这种脚本提供了一系列步骤和场景,以确保团队能够高效、协调地应对各种紧急事件。以下将详细探讨应急演练脚本的定义、设计原则以及实施过程。 一、应急演练脚本…