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

攻防世界-web-csaw-mfw

一.题目分析

这边提示使用了Git,试着访问.git看是否存在.git泄露

浏览了一下,很多都是乱码,想着用githack将git库克隆下看一下

二.操作

python2 GitHack.py http://url/.git

访问了一下flag.php,没啥发现,在看一下index.php

审计一下:

仅展示部分代码

第一思路使用文件包含(发现不行)

我在这边发现有一个require_once第一想法就是通过文件包含漏洞,所以去找这个$file参数。

$file会从前端的$page获取数据并在前面拼接template/ ,在后面还有对这个参数的过滤,

①如果参数含有..就会终止整个程序并且返回Detected hacking attempt

②如果$file传的文件路径要是不存在则会终止程序,返回That file doesn't exist

所以如果要通过文件包含去渗透就需要绕过这两个防护,这边最初想法在后面文件包含部分可能就需要eval(system('cat ./template/flag.php')),后面发现这边还没到require_once的时候就以及会执行cat ./template/flag.php了。这边是因为assert也会把内部的字符串当成php命令执行

第二思路通过assert()

php版本在7.3以下会存在assert()会执行字符串中的php代码

①测试

?page=%27).phpinfo();//

%27代表'

%27)闭合前面的strop函数        .作为字符串的分隔符号,最后会执行phpinfo()这边没闭合assert,但是内部的其他函数是完整合法所以不影响函数执行,但是这边闭合了assert反而无法执行了,这边自己也不知道。

成功显示了

②打开目标文件

').system('cat ./templates/flag.php');//
') or print_r(file_get_contents('templates/flag.php'));//
 ', '..') or eval($_REQUEST['hacker']); //

第三个句子,得用蚁剑去连接,但是我自己不爱用蚁剑所以就没有演示了

这道题目做完我也有点问题,希望有人给我解答一下,为什么通过git库下载下来的flag.php文件没法看到我们想要的flag,但是我们在进行渗透的时候也是去cat这个文件,为什么可以得到,还有就是为闭合assert()却反而没法渗透成功

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

相关文章:

  • IO流-字节流-FileOutputStream
  • 复现YOLOV5+训练指定数据集
  • 关于Web前端安全防御之安全头配置
  • 最新Android Studio汉化教程--兼容插件包
  • Java Stream API 编程实战
  • MySQL 事务原理 + ACID笔记
  • 【C语言】结构体详解
  • 无人机集群协同三维路径规划,采用冠豪猪优化器(Crested Porcupine Optimizer, CPO)实现,Matlab代码
  • Jetpack Compose for XR:构建下一代空间UI的完整指南
  • C++引用:高效安全的别名机制详解
  • 途游Android面试题及参考答案
  • pytorch 安装
  • 机器翻译的分类:规则式、统计式、神经式MT的核心区别
  • 计算用户日活:从数据设计到可视化的全流程(高频场景题)
  • 深入掌握 ExcelJS:Node.js 中强大的 Excel 操作库
  • RAG 知识库实战指南:基于 Spring AI 构建 AI 知识问答应用
  • GaussDB case when的用法
  • 在win上安装最新的X-anylabeling以及sam2来帮助进行全自动追踪标注
  • 多模态后训练反常识:长思维链SFT和RL的协同困境
  • Git 常用命令指南:从入门到高效开发
  • 【Qt】QObject::startTimer: Timers cannot be started from another thread
  • 考研复习-计算机组成原理-第二章-数据的表示和运算
  • Kazam产生.movie.mux后恢复视频为.mp4
  • 第三章-提示词-高级:开启智能交互新境界(13/36)
  • Steam饥荒联机版多人服务器搭建全解析 -- 阿里云Linux系统构建云服务器
  • MPLS LSP
  • Mysql深入学习:慢sql执行
  • C语言基础03——数组——习题
  • 时序论文44 | TwinsFormer:通过两个交互组件重构时间序列内在依赖关系
  • 14. 最长公共前缀