无境 web上新:wordpress 路径穿越 cve-2026-87902

【漏洞原理】 本题复现 CVE-2026-87902(WordPress ≤ 7.1.1,7.1.2 修复)。WordPress 解析页面模板时,会以当前主题的 page-* 目录为前缀拼接模板候选路径,但对路径段缺少包含校验:攻击者通过 pagename 传入双重编码的 ../ 序列即可穿越出主题目录、甚至到达 web 根之外,使模板加载器包含本地任意 .php 文件并按 PHP 执行——这是一个未授权的本地文件包含(LFI)。当部署条件满足(官方 PHP 镜像自带 PEAR、register_argc_argv=On、/tmp 可写)时,可进一步借助 pearcmd.php 把可控内容写入 /tmp 再包含,升级为以 www-data 身份执行任意代码(RCE)。

【环境设计】 单容器自包含环境:WordPress 7.1.1 官方 php8.3-apache 构建(受影响版本的最新版)+ 内置数据库,启动即用、不依赖外部服务;漏洞触发前提均已内置(已发布的默认模板页面 ID=2、当前主题含顶级 page-templates/ 目录、register_argc_argv=On)。站点为旅行博客「Travel Journal」,flag 存放在根目录 /flag(root 所有,0444);同目录另有一个只读的 /flag.php,内容仅为读取并输出 /flag,位于 web 根之外、无法被 URL 直接访问,只能通过本漏洞的文件包含触达。

【取得 flag 方式】 按公开利用链走「LFI → pearcmd 写入 payload → 包含执行」的完整 RCE,以 www-data 执行任意命令后读取 /flag

4ed7c01c7320260923132619

 

请登录后发表评论

    请登录后查看回复内容