HITCON CTF 2018 - 单行 PHP 挑战:会话上传与流过滤器链的极致利用
HITCON CTF 2018 - 单行 PHP 挑战
这是 Orange 带来的技术分享 :)
挑战背景
在每年 HITCON CTF 中,我都会设计至少一个 PHP 漏洞利用挑战,其特点是源码极其简洁(通常只有几行),但利用难度极高。本次挑战是历年最短的一个——仅含单行 PHP 代码,运行在默认安装的 Ubuntu 18.04 + PHP7.2 + Apache 环境。
核心技术点
会话上传进度控制
利用
session.upload_progress
特性(默认启用)向 SESSION 文件注入可控内容:
复制代码
流过滤器链绕过
通过多级 base64 解码过滤器处理前缀污染:
复制代码
竞态条件利用
对抗
session.upload_progress.cleanup
的自动清理机制(默认开启),通过快速竞争或大文件上传维持会话。
漏洞利用过程
构造特殊 base64 载荷,经过三级解码后生成有效 PHP 代码:
复制代码
结合会话文件包含漏洞实现 RCE:
复制代码
防御建议
禁用
session.upload_progress
功能设置
open_basedir
限制文件访问范围对会话文件路径进行随机化处理更多精彩内容 请关注我的个人公众号 公众号(办公 AI 智能小助手)公众号二维码
- 办公AI智能小助手
评论