此仓库在安全环境中模拟了与 Web 相关的 CVE(CVE-2025-1489)的复现,以演示并练习我的取证/漏洞分析技能。
已识别并复现的漏洞是 WordPress 插件 WP-Appbox(版本 4.5.4)中的存储型跨站脚本(XSS)漏洞。由于对用户转义属性的输入清理和输出转义不足,攻击者控制的输入被放置在文章的 Appbox 短代码中,进而渲染到页面输出中,从而允许通过属性上下文执行恶意脚本。该漏洞在 WP-Appbox 的后续版本(4.5.5+)中已修复。
该插件暴露了一个短代码 [appbox ...],接受一个应用 ID appID 和用户提供的短代码属性,这些属性在插件的入口点未被正确清理或转义。
在源代码文件 createoutput.class.php 中,短代码数据的部分内容被插入到 HTML 属性或内联样式中,从而允许属性上下文注入(第 199 行及第 438-447 行)。通过构造一个强制使用背景图片的 appID,我确认了向攻击者服务器发出的可重复的出站 GET 请求,这是服务器端存储型 XSS 的明确指示器。
组件:
├── attacker/
│ ├── server.py # 攻击者 HTTP 服务器,用于提供并记录请求
│ └── requests.log # 记录从 WordPress 浏览器发往攻击者服务器的入站请求
├── README.md # 主要概述和复现说明
├── docker-compose.yml # Docker 配置设置
└── full_report.pdf # 完整报告,包括分析、缓解措施、发现结果和影响范围
设置环境:
前提条件: 主机上已安装 Docker Desktop 和 svn。
步骤:
svn 拉取标签 4.5.4:svn checkout https://plugins.svn.wordpress.org/wp-appbox/tags/4.5.4 wp-appbox-4.5.4
docker-compose up -d
WordPress 设置:
localhost:8000 访问 WordPress 并创建一个管理员用户登录攻击者用户,导航至文章 > 写文章 > 使用短代码块创建恶意负载以利用存储型 XSS 漏洞。