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

【BUUCTF系列】[HCTF 2018]WarmUp1

本文仅用于技术研究,禁止用于非法用途。
Author:枷锁

点开题目显示一个图片,没有任何交互功能,我们直接查看网页源代码

我们可以看到有一个歆慕的注释source.php,我们进行拼接,访问一下这个文件
在这里插入图片描述
在url后加上/source.php进行访问,可以看到我们访问到一些源码
在这里插入图片描述

访问后得到以下关键PHP代码:

highlight_file(__FILE__);
class emmm {public static function checkFile(&$page) {$whitelist = ["source"=>"source.php","hint"=>"hint.php"];// ...检查逻辑...}
}if (!empty($_REQUEST['file']) && is_string($_REQUEST['file']) && emmm::checkFile($_REQUEST['file'])) {include $_REQUEST['file'];exit;
} else {echo "<br><img src=\"https://i.loli.net/2018/11/01/5bdb0d93dc794.jpg\" />";
}
  1. 文件包含条件
  • $_REQUEST['file']不为空
  • $_REQUEST['file']是字符串类型
  • 通过emmm::checkFile()检查
  • 只有让这三个都是true才能进入include,从而文件包含出flag文件。前两个只要file不为空且是字符串类型即可为true。重点是第三个判断。
  1. checkFile函数逻辑
  • 定义白名单:source.phphint.php
  • 检查输入是否在白名单中
  • 对输入进行URL解码和字符串截取处理
  • 多层检查机制增加了绕过难度
  1. 可利用点
  • 白名单检查可通过路径遍历绕过
  • URL解码特性可被利用
  • include函数对路径的特殊处理方式

解题步骤

第一步:获取提示信息

访问hint.php获取提示:

?file=hint.php

返回提示可能存在ffffllllaaaagggg文件
在这里插入图片描述

第二步:构造payload绕过检查

  1. 基本payload结构

    file=hint.php?/../../../../../ffffllllaaaagggg
    
    • 利用?截断使hint.php通过白名单检查
    • 使用路径遍历访问目标文件
  2. URL编码处理
    由于服务器会自动进行URL解码,需要构造多层编码:

    file=hint.php%253F/../../../../../ffffllllaaaagggg
    

    file=hint.php%3F%2F..%2F..%2F..%2F..%2F..%2Fffffllllaaaagggg
    

第三步:理解include机制

路径解析特性

  • PHP的include会尝试解析/分隔的路径
  • 如果前半部分文件不存在,会尝试包含后半部分路径
  • 路径遍历深度足够时能访问到目标文件

技术要点总结

  1. 文件包含漏洞利用
  • 通过白名单绕过实现任意文件包含
  • 结合路径遍历访问敏感文件
  1. URL编码特性
  • 服务器自动解码机制
  • 多层编码绕过技巧
  1. PHP include特性
  • 路径解析的特殊处理
  • 相对路径的计算方式

最终解决方案

最有效的payload为:

?file=hint.php%253F/../../../../../ffffllllaaaagggg

在这里插入图片描述

这个payload能够:

  1. 通过白名单检查(解码后为hint.php?
  2. 利用路径遍历访问目标文件
  3. 适应服务器的自动解码机制

宇宙级免责声明​​
🚨 重要声明:本文仅供合法授权下的安全研究与教育目的!🚨
1.合法授权:本文所述技术仅适用于已获得明确书面授权的目标或自己的靶场内系统。未经授权的渗透测试、漏洞扫描或暴力破解行为均属违法,可能导致法律后果(包括但不限于刑事指控、民事诉讼及巨额赔偿)。
2.道德约束:黑客精神的核心是建设而非破坏。请确保你的行为符合道德规范,仅用于提升系统安全性,而非恶意入侵、数据窃取或服务干扰。
3.风险自担:使用本文所述工具和技术时,你需自行承担所有风险。作者及发布平台不对任何滥用、误用或由此引发的法律问题负责。
4.合规性:确保你的测试符合当地及国际法律法规(如《计算机欺诈与滥用法案》(CFAA)、《通用数据保护条例》(GDPR)等)。必要时,咨询法律顾问。
5.最小影响原则:测试过程中应避免对目标系统造成破坏或服务中断。建议在非生产环境或沙箱环境中进行演练。
6.数据保护:不得访问、存储或泄露任何未授权的用户数据。如意外获取敏感信息,应立即报告相关方并删除。
7.免责范围:作者、平台及关联方明确拒绝承担因读者行为导致的任何直接、间接、附带或惩罚性损害责任。

🔐 安全研究的正确姿势:
✅ 先授权,再测试
✅ 只针对自己拥有或有权测试的系统
✅ 发现漏洞后,及时报告并协助修复
✅ 尊重隐私,不越界

⚠️ 警告:技术无善恶,人心有黑白。请明智选择你的道路。

希望这个教程对你有所帮助!记得负责任地进行安全测试。

http://www.lryc.cn/news/606298.html

相关文章:

  • 第15届蓝桥杯C++青少组中级组选拔赛(STEMA)2024年3月10日真题
  • 大模型流式长链接场景下 k8s 优雅退出 JAVA
  • 永磁同步电机无速度算法--直流误差抑制自适应二阶反推观测器
  • 公路坑槽检测分析原理和思路
  • Java——数组及Java某些方法、二维数组
  • #C语言——刷题攻略:牛客编程入门训练(一):简单输出、基本类型
  • C++游戏开发(2)
  • 一次性接收大量上传图片,后端优化方式
  • 代码随想录算法训练营第五十七天|图论part7
  • Qt 消息弹窗 Toast
  • 两款免费数据恢复软件介绍,Win/Mac均可用
  • python后端之DRF框架(下篇)
  • 《零基础入门AI:传统机器学习核心算法(决策树、随机森林与线性回归)》
  • wxPython 实践(五)高级控件
  • 【ad-hoc构造】P10033 「Cfz Round 3」Sum of Permutation|普及+
  • vscode插件开发(腾讯混元)
  • Go再进阶:结构体、接口与面向对象编程
  • Cesium 快速入门(三)Viewer:三维场景的“外壳”
  • 基于深度学习的医学图像分析:使用BERT实现医学文本分类
  • 零信任网络概念及在网络安全中的应用
  • 【数据库】MySQL 详细安装与基础使用教程(8版本下载及安装)
  • RWA+AI算力賦能全球醫療数字產業升級高峰論壇——暨BitHive BTT 全球發佈會
  • C++面试5题--6day
  • wpf之ContentPresenter
  • PyTorch深度学习快速入门学习总结(三)
  • 【机器学习篇】01day.python机器学习篇Scikit-learn入门
  • 机器学习①【机器学习的定义以及核心思想、数据集:机器学习的“燃料”(组成和获取)】
  • 运行图生视频/文生视频(Wan2.X等)的显卡配置总结
  • 基于deepseek的文本解析 - 超长文本的md结构化
  • CNN卷积神经网络之LeNet和AlexNet经典网络模型(三)