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

CTF实战:手把手教你用phar伪协议绕过NSS靶场文件上传限制

CTF实战手把手教你用phar伪协议绕过NSS靶场文件上传限制在网络安全竞赛和渗透测试中文件上传漏洞一直是高频考点。今天我们将深入探讨如何利用PHP的phar伪协议绕过NSSCTF平台bingdundun题目的文件上传限制实现远程代码执行(RCE)。不同于简单的Writeup本教程将从原理到实践带你完整走通整个攻击链。1. 环境分析与漏洞定位首先访问题目链接我们会看到一个文件上传界面提示只能上传图片或者压缩包。这种限制在CTF和实际渗透中非常常见通常通过检查文件扩展名或MIME类型来实现。关键发现点URL中存在GET参数bingdundunindex测试发现参数值会被自动追加.php后缀上传功能仅允许图片(.jpg,.png等)或压缩包(.zip,.rar等)通过简单测试我们可以推测后台可能存在文件包含漏洞。当传入?bingdundunfilename时服务器会尝试包含filename.php文件。这为我们后续利用phar伪协议提供了可能。注意在实际测试中建议先尝试上传正常图片观察服务器返回的存储路径和文件名处理方式这对后续攻击很有帮助。2. phar伪协议核心原理phar(PHP Archive)是PHP的一种打包格式类似于Java的JAR。从PHP 5.3开始默认支持.phar文件操作。phar伪协议最强大的特性在于它能解析多种压缩格式而不仅限于.phar后缀。phar文件结构解析Stub文件头必须包含__HALT_COMPILER();语句Manifest描述压缩内容包含文件元数据(可序列化)File Contents实际压缩的文件内容Signature(可选)文件签名与其他压缩协议(zip://, bzip2://等)相比phar://有以下优势支持更多压缩格式不严格依赖文件扩展名可以触发反序列化操作(通过metadata)3. 构造恶意phar文件虽然题目允许上传.zip文件但我们将演示更通用的phar文件构造方法。以下是创建恶意phar文件的PHP脚本?php $phar new Phar(exploit.phar); $phar-startBuffering(); $phar-setStub(?php __HALT_COMPILER(); ?); // 添加包含恶意代码的文件 $phar-addFromString(shell.php, ?php eval($_GET[cmd]); ?); // 可以添加metadata用于反序列化攻击 // $phar-setMetadata([key value]); $phar-stopBuffering(); ?执行此脚本后会生成exploit.phar文件。我们可以直接上传它或者重命名为.zip扩展名以绕过上传限制。关键技巧即使重命名为.jpg只要内容符合phar格式仍可被解析最小phar文件只需包含stub和至少一个文件可以通过php -d phar.readonly0 script.php禁用只读模式4. 完整攻击链实现现在我们将各个步骤串联起来实现完整的攻击流程上传阶段将生成的phar文件重命名为exploit.zip上传到服务器记下返回的存储路径如/uploads/exploit.zip文件包含触发构造URL?bingdundunphar://uploads/exploit.zip/shell服务器会解析为phar://uploads/exploit.zip/shell.php由于phar协议会自动解压并访问内部文件我们的shell.php将被执行RCE实现访问包含后的URL附加命令参数cmdsystem(ls);服务器将执行我们注入的PHP代码常见问题排查如果返回空白可能是phar文件构造有问题检查stub格式如果报错not a valid phar archive尝试重新生成或使用zip格式确保内部文件路径与包含时指定的路径一致5. 防御措施与进阶思考了解攻击手段后我们更应该思考如何防御此类漏洞。以下是几种有效的防护方案防御措施实现方式有效性文件内容检查使用getimagesize()验证图片真实性中重命名上传文件生成随机文件名避免目录遍历高禁用危险协议在php.ini中限制phar://等协议高权限隔离上传目录禁止执行PHP高在更复杂的场景中phar协议还可以与反序列化漏洞结合通过精心构造的metadata实现更深入的攻击。这要求我们不仅要关注文件上传本身还要注意整个应用的处理流程。6. 其他压缩协议对比除了phar://PHP还支持多种压缩流协议它们在CTF中各有应用场景协议对比表协议所需扩展支持格式自动解压反序列化风险phar://内置phar, zip是高zip://zipzip是无bzip2://bz2bz2是无zlib://zlibgz是无选择协议时zip://通常是最兼容的方案而phar://功能最强大但风险也最高。在实际渗透测试中可以依次尝试这些协议寻找可用的攻击面。7. 实战技巧与经验分享在真实CTF比赛和渗透测试中有几点经验值得分享文件扩展名绕过尝试.phar、.zip、.jpg等多种扩展名测试大小写变种(.pHp、.PhAr)使用双扩展名(exploit.jpg.php)内容混淆技术在phar文件中添加真实的图片数据使用polyglot技术构造既是图片又是phar的文件通过注释添加垃圾数据干扰检测路径遍历技巧尝试绝对路径包含phar:///var/www/uploads/exploit.zip测试相对路径phar://../uploads/exploit.zip结合目录穿越实现更灵活的包含遇到上传限制时不要轻易放弃。多角度思考、全面测试每个可能的入口点往往能在看似严密的防御中找到突破口。

相关文章:

CTF实战:手把手教你用phar伪协议绕过NSS靶场文件上传限制

CTF实战:手把手教你用phar伪协议绕过NSS靶场文件上传限制 在网络安全竞赛和渗透测试中,文件上传漏洞一直是高频考点。今天我们将深入探讨如何利用PHP的phar伪协议,绕过NSSCTF平台"bingdundun"题目的文件上传限制,实现远…...

Spring Cloud微服务里,如何用XXL-JOB搞定订单15分钟未支付自动关闭?

Spring Cloud微服务中基于XXL-JOB的订单超时自动关闭实战方案 电商平台的订单超时自动关闭是一个典型的高并发业务场景。想象一下,当用户下单后未支付,系统需要在15分钟后自动释放库存并关闭订单。传统做法可能采用数据库轮询或延迟队列,但在…...

LVGL事件处理实战:从按钮点击到复杂手势,手把手教你写响应式UI回调

LVGL事件处理实战:从按钮点击到复杂手势,手把手教你写响应式UI回调 在嵌入式系统开发中,用户界面的交互体验往往决定了产品的成败。LVGL作为轻量级通用图形库,其事件处理机制是构建动态交互的核心。不同于简单的回调函数绑定&…...

从主题到视频:Pixelle-Video如何用AI重构你的内容创作流程

从主题到视频:Pixelle-Video如何用AI重构你的内容创作流程 【免费下载链接】Pixelle-Video 🚀 AI 全自动短视频引擎 | AI Fully Automated Short Video Engine 项目地址: https://gitcode.com/GitHub_Trending/pi/Pixelle-Video 想象一下&#xf…...

Windows流媒体服务器终极指南:5分钟部署SRS高性能视频传输平台

Windows流媒体服务器终极指南:5分钟部署SRS高性能视频传输平台 【免费下载链接】srs-windows 项目地址: https://gitcode.com/gh_mirrors/sr/srs-windows 在Windows平台上快速搭建专业级流媒体服务器,SRS(Simple Realtime Server&…...

GASShooter伤害计算与GameplayEffectContext:自定义伤害类型与爆头机制终极指南 [特殊字符]

GASShooter伤害计算与GameplayEffectContext:自定义伤害类型与爆头机制终极指南 🎯 【免费下载链接】GASShooter Advanced FPS/TPS Sample Project for Unreal Engine 4s GameplayAbilitySystem plugin 项目地址: https://gitcode.com/gh_mirrors/ga/G…...

如何快速搭建Windows虚拟路由器:VirtualRouter完整使用指南

如何快速搭建Windows虚拟路由器:VirtualRouter完整使用指南 【免费下载链接】VirtualRouter Wifi Hotspot for Windows computers (Windows 7, 8.x, Server 2012 and newer!) 项目地址: https://gitcode.com/gh_mirrors/vi/VirtualRouter VirtualRouter是一款…...

展锐RM500U 5G CPE固件升级避坑指南:为什么你的QFlash总卡在‘开始下载’?

展锐RM500U 5G CPE固件升级疑难解析:从QFlash卡顿到完美升级的实战手册 当你的展锐RM500U 5G CPE设备需要固件升级时,QFlash工具本应是简单高效的解决方案。然而,许多用户在点击"Start"按钮后,却遭遇了进度条停滞不前的…...

如何获取VMware Workstation Pro 17免费许可证密钥:完整实践指南

如何获取VMware Workstation Pro 17免费许可证密钥:完整实践指南 【免费下载链接】VMware-Workstation-Pro-17-Licence-Keys Free VMware Workstation Pro 17 full license keys. Weve meticulously organized thousands of keys, catering to all major versions o…...

如何利用LayerPlayer快速掌握iOS动画开发技巧

如何利用LayerPlayer快速掌握iOS动画开发技巧 【免费下载链接】LayerPlayer Layer Player explores the capabilities of Apples Core Animation API 项目地址: https://gitcode.com/gh_mirrors/la/LayerPlayer LayerPlayer是一款专注于探索Apple Core Animation API功能…...

3个实用技巧:用SMUDebugTool解决AMD Ryzen常见硬件问题

3个实用技巧:用SMUDebugTool解决AMD Ryzen常见硬件问题 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://g…...

June主题定制教程:从模板修改到样式定制的完整解决方案

June主题定制教程:从模板修改到样式定制的完整解决方案 【免费下载链接】june June is a forum (Deprecated) 项目地址: https://gitcode.com/gh_mirrors/ju/june June是一款开源论坛项目,通过本教程你将学习如何轻松定制June论坛的主题外观&…...

终极指南:如何用罗技鼠标宏实现PUBG完美压枪控制

终极指南:如何用罗技鼠标宏实现PUBG完美压枪控制 【免费下载链接】logitech-pubg PUBG no recoil script for Logitech gaming mouse / 绝地求生 罗技 鼠标宏 项目地址: https://gitcode.com/gh_mirrors/lo/logitech-pubg 还在为《绝地求生》中难以驾驭的武器…...

城通网盘解析工具:3分钟获取直连地址的完整高效解决方案

城通网盘解析工具:3分钟获取直连地址的完整高效解决方案 【免费下载链接】ctfileGet 获取城通网盘一次性直连地址 项目地址: https://gitcode.com/gh_mirrors/ct/ctfileGet 城通网盘解析工具 ctfileGet 是一款专为破解城通网盘下载限制而设计的开源工具&…...

VMware Workstation Pro 17 免费许可证密钥终极指南:快速获取与完整安装教程

VMware Workstation Pro 17 免费许可证密钥终极指南:快速获取与完整安装教程 【免费下载链接】VMware-Workstation-Pro-17-Licence-Keys Free VMware Workstation Pro 17 full license keys. Weve meticulously organized thousands of keys, catering to all major…...

从红宝石到光纤:固体激光器家族里,谁才是工业加工界的‘六边形战士’?

从红宝石到光纤:固体激光器家族里,谁才是工业加工界的‘六边形战士’? 在金属切割车间里,激光束正以毫米级精度划过不锈钢板;精密电子产线上,纳米级激光打标机为电路板刻印追溯码;汽车焊接工段…...

为什么你的PS手柄在Windows上无法畅玩游戏?3步解锁完美兼容方案

为什么你的PS手柄在Windows上无法畅玩游戏?3步解锁完美兼容方案 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 你是否曾经兴奋地想在PC上使用心爱的PlayStation手柄&#xff…...

别再死记硬背了!用COMSOL 5.6搞定声学建模,从房间特征频率到完美匹配层(PML)实战避坑

别再死记硬背了!用COMSOL 5.6搞定声学建模,从房间特征频率到完美匹配层(PML)实战避坑 声学建模在工程应用中越来越重要,无论是建筑声学设计、噪声控制还是医疗超声设备开发,都需要精确的声场模拟。但对于初…...

旧安卓手机别扔!用Termux+LXC把它变成一台Ubuntu Docker服务器(保姆级避坑指南)

旧安卓设备重生指南:打造低功耗Ubuntu容器服务器的完整方案 你是否曾为抽屉里那台退役的安卓手机感到惋惜?当旗舰机型沦为电子垃圾时,其实它们潜藏的算力足以支撑个人开发环境、轻量级服务甚至家庭自动化中枢。本文将揭示如何通过Termux与LXC…...

JMeter临界部分控制器正确用法与避坑指南

1. 为什么“临界部分控制器”是压测中真正卡住团队的隐形瓶颈很多人第一次在JMeter里看到临界部分控制器(Critical Section Controller),第一反应是:“这不就是个带锁的逻辑块?加个锁而已,能有多复杂&#…...

Selenium自动化绕过反爬:彻底清除webdriver指纹的三层策略

1. 为什么“移除 webdriver 标志”成了自动化测试与爬虫绕过的第一道门槛 你有没有遇到过这样的情况:用 Selenium 写好了一套完整的电商比价脚本,本地跑得丝滑流畅,一上服务器或换台新机器就频繁触发验证码,甚至直接返回 403&…...

深度掌握AMD Ryzen性能调优:SMUDebugTool硬件调试终极指南

深度掌握AMD Ryzen性能调优:SMUDebugTool硬件调试终极指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:…...

哔哩漫游X:全面解锁B站功能的终极ReVanced增强模块

哔哩漫游X:全面解锁B站功能的终极ReVanced增强模块 【免费下载链接】BiliRoamingX-integrations BiliRoamingX integrations and patches powered by ReVanced. 项目地址: https://gitcode.com/gh_mirrors/bi/BiliRoamingX-integrations B站作为中国最大的视…...

如何通过Marlin固件配置解决3D打印常见问题:终极完整指南

如何通过Marlin固件配置解决3D打印常见问题:终极完整指南 【免费下载链接】Marlin Marlin is a firmware for RepRap 3D printers optimized for both 8 and 32 bit microcontrollers. Marlin supports all common platforms. Many commercial 3D printers come wit…...

3步快速上手:AMD Ryzen性能调试工具SMUDebugTool完全指南

3步快速上手:AMD Ryzen性能调试工具SMUDebugTool完全指南 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https:/…...

GitHub中文界面终极指南:免费脚本让英文GitHub秒变中文

GitHub中文界面终极指南:免费脚本让英文GitHub秒变中文 【免费下载链接】github-chinese GitHub 汉化插件,GitHub 中文化界面。 (GitHub Translation To Chinese) 项目地址: https://gitcode.com/gh_mirrors/gi/github-chinese 还在为GitHub全英文…...

智慧树自动刷课插件终极指南:3步安装教程,彻底告别手动刷课烦恼!

智慧树自动刷课插件终极指南:3步安装教程,彻底告别手动刷课烦恼! 【免费下载链接】zhihuishu 智慧树刷课插件,自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 还在为智慧树平台的…...

从一次PR被拒说起:我是如何用Git Upstream优雅同步Gitee Fork仓库的

从一次PR被拒说起:我是如何用Git Upstream优雅同步Gitee Fork仓库的 那天下午,当我满怀期待地打开Gitee通知,看到的却是项目维护者冰冷的回复:"PR存在大量冲突,请先同步最新代码"。作为一个刚接触开源贡献的…...

为什么iOS越狱依然充满魔力?揭秘现代越狱技术的创新突破

为什么iOS越狱依然充满魔力?揭秘现代越狱技术的创新突破 【免费下载链接】Jailbreak iOS 26.4 - 26, 17 - 17.7.5 & iOS 18 - 18.7.3 Jailbreak Tools, Cydia/Sileo/Zebra Tweaks & Jailbreak News Updates || AI Jailbreak Finder 👇 项目地址…...

TradingAgents-CN:构建智能金融分析系统的5大关键模块解析

TradingAgents-CN:构建智能金融分析系统的5大关键模块解析 【免费下载链接】TradingAgents-CN 基于多智能体LLM的中文金融交易框架 - TradingAgents中文增强版 项目地址: https://gitcode.com/GitHub_Trending/tr/TradingAgents-CN 在金融科技快速发展的今天…...