【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.pswp.cn/diannao/93800.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/93800.shtml

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

相关文章

Flutter Chen Generator - IconFont Generator

Flutter Chen Generator &#x1f680; 一个强大的Flutter代码生成工具包&#xff0c;包含多个实用的代码生成器。 ✨ 功能特性 &#x1f4c1; 资源生成器 (Assets Generator) &#x1f504; 自动扫描assets目录并生成Dart常量&#x1f9e0; 智能驼峰命名转换&#xff0c;保…

【MATLAB】(二)基础知识

一.MATLAB命令1.指令行“头首”的 “>>” 是 “指令输入提示符” &#xff0c;它是自动输入的。“>>” 为运算提示符&#xff0c;表示MATLAB处于准备就绪状态。如在提示符后输入一条命令或一段程序后按Enter键&#xff0c;MATLAB将给出对应的结果&#xff0c;并将结…

Day36| 1049. 最后一块石头的重量 II、494.目标和、474.一和零

文章链接 1049. 最后一块石头的重量 II 解题关键&#xff1a;找到重量和尽量相等的两堆 确定dp数组以及下标的含义 dp[j]表示容量&#xff08;这里说容量更形象&#xff0c;其实就是重量&#xff09;为j的背包&#xff0c;最多可以背最大重量为dp[j]。 确定递推公式 01背包…

【A*/BFS】P5507 机关

# P5507 机关 题目描述 这扇门上有一个机关&#xff0c;上面一共有12个旋钮&#xff0c;每个旋钮有4个状态&#xff0c;将旋钮的状态用数字111到444表示 每个旋钮只能向一个方向旋转&#xff08;状态&#xff1a;1->2->3->4->1&#xff09;&#xff0c;在旋转时&am…

终结集成乱局:模型上下文协议(MCP)如何重构AI工具生态?

AI 助手正处于能力发展的初级阶段。它们擅长处理独立任务——例如解析 PDF、编写 SQL 语句、等等——但当你要求它们在 Slack、Gmail 和 Jira 等平台间协同操作时&#xff0c;整个流程就变得异常复杂且脆弱&#xff0c;如同调试一套由众多 API 密钥串联的精密机械&#xff08;鲁…

谈谈毕业工作一年后的变化

文章目录谈谈毕业工作一年后的变化工作篇生活篇谈谈毕业工作一年后的变化 工作篇 2025.7.30 21:49 呼~再次打开这个网站发布文章&#xff0c;是多么陌生。仿佛有说不完的话&#xff0c;但如今时间却不允许我无限制的长篇大论的写下去了。 先说下工作吧。 毕业后工作好快啊&…

huggingface下载问题

国内使用git clone下载huggingfaceTOC 国内直接git clone连接不上问题 git clone https://huggingface.co/spaces/ZebangCheng/Emotion-LLaMA Cloning into ‘Emotion-LLaMA’… fatal: unable to access ‘https://huggingface.co/spaces/ZebangCheng/Emotion-LLaMA/’: Fai…

anaconda searchanaconda show | conda 检索包资源安装指定版本包指定源安装命令package

conda issuehttp://t.csdnimg.cn/ndZZK 目录 常规安装 检索包资源 获取指定包的安装源&安装指令 安装指定包 常规安装 conda 常规安装xxx包 conda install xxx conda install有可能会受限于channel导致报错PackagesNotFoundError: The following packages are not av…

python cli命令 cli工具命令 自定义cli命名 开发 兼容 window、mac、linux,调用示例

前言需求背景整个项目基于Python开发&#xff0c;需求方期望不直接调用Python脚本执行&#xff0c;希望封装为cli命令执行Python脚本&#xff0c;使其更为简单而又“优雅”。类似直接使用 adb devices 的方式直接调用运行&#xff0c;而不是 python adbToolls.py devices的方式…

k8s pod生命周期、初始化容器、钩子函数、容器探测、重启策略

pod结构Pause容器 Pause容器是每个Pod都会有的一个根容器&#xff0c;它的作用有两个 可以以它为根据&#xff0c;评估整个pod的健康状态可以在根容器上设置IP地址&#xff0c;其他容器都以此IP&#xff08;Pod IP&#xff09;&#xff0c;以实现Pod内部的网络通信&#xff0c;…

Redis:缓存雪崩、穿透、击穿的技术解析和实战方案

&#x1f6a8; 1、简述 随着系统规模扩大&#xff0c;Redis 缓存被广泛用于数据预热、热点数据防护和高并发系统优化。然而在高并发环境中&#xff0c;缓存雪崩、穿透、击穿等问题若处理不当&#xff0c;可能导致系统雪崩式崩溃。 本文从原理、原因出发&#xff0c;结合实际项目…

前端-html+CSS基础到高级(二)html基础

一、 为什么需要Web标准 浏览器差异问题&#xff1a;五大主流浏览器&#xff08;IE、Chrome、Firefox、Safari等&#xff09;使用不同渲染引擎&#xff0c;导致相同代码解析效果存在差异。为什么需要Web标准&#xff1f;不同浏览器的渲染引擎不同&#xff0c;对于相同代码解析的…

前端-移动Web-day2

目录 1、空间-平移 2、视距 3、空间旋转-Z轴 4、空间旋转-X轴 5、空间旋转-Y轴 6、立体呈现 7、案例-3D导航 8、空间-缩放 9、动画-体验 10、动画-实现步骤 11、animation复合属性 12、animation拆分写法 13、案例-走马灯 14、精灵动画 15、多组动画 16、案例-…

力扣1116题:用C++实现多线程交替输出零、偶数、奇数

一、题目解读 力扣1116题要求设计一个类&#xff0c;实现三个线程交替输出数字&#xff1a;一个线程输出连续的0&#xff0c;一个线程输出连续的偶数&#xff0c;另一个线程输出连续的奇数。输入参数n为总输出次数&#xff08;每个线程各输出n次&#xff09;&#xff0c;输出需…

C语言(07)——原码 补码 反码 (超绝详细解释)

本文的内容通下面这篇文章有着紧密的联系&#xff0c;读者可以选择性阅读 C语言————二、八、十、十六进制的相互转换-CSDN博客 相关的C语言练习题和思维锻炼可以参考以下文章 C语言————练习题册&#xff08;答案版&#xff09;-CSDN博客 C语言————斐波那契数列…

磁盘坏道检测工具在美国服务器硬件维护中的使用规范

磁盘坏道检测工具在美国服务器硬件维护中的使用规范在服务器硬件维护领域&#xff0c;磁盘坏道检测工具是保障数据安全的第一道防线。本文将系统介绍美国数据中心环境下专业级磁盘诊断方案的实施标准&#xff0c;重点解析SMART检测、坏道修复算法与自动化运维流程的整合方法&am…

【n8n】如何跟着AI学习n8n【03】:HTTPRequest节点、Webhook节点、SMTP节点、mysql节点

前言 n8n的系统性学习&#xff0c;对各知识点地毯式学习&#x1f50d;~ 前面课程 定制n8n的AI老师&#xff0c;有AI老师制定学习大纲&#xff0c;参考之前的文档&#xff08;本系列n8n学习大纲&#xff0c;也在这里&#xff09;&#xff1a; 【n8n】如何跟着AI学习n8n_01&a…

Vue 的双向数据绑定原理

Vue 的双向数据绑定是通过 数据劫持 发布-订阅模式 实现的&#xff0c;具体分为以下三个关键机制&#xff1a;1. 数据劫持&#xff08;响应式系统&#xff09; Vue 使用 Object.defineProperty&#xff08;Vue 2&#xff09;或 Proxy&#xff08;Vue 3&#xff09;监听数据变化…

【基于C# + HALCON的工业视觉系统开发实战】三十五、金属表面划伤检测:强反光场景解决方案

摘要:针对金属表面强反光导致划伤检测准确率低的行业痛点,本文提出基于光度立体法的工业视觉检测方案。系统采用“硬件抗反光+算法重建”双策略,硬件上通过可编程分区环形光源、偏振镜头与高动态相机构建成像系统;算法上利用四方向光源序列图像重建表面法向量与高度场,实现…

为什么bert是双向transformer

BERT 是双向 Transformer&#xff0c;这是它的一个核心创新点。下面我从 技术原理、与传统 Transformer 的区别、以及双向性的实际意义 来详细解释为什么 BERT 被称为“双向 Transformer”。一、什么是 BERT 的“双向”&#xff1f;在 BERT 的论文中&#xff0c;双向的原文是 &…