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

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

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

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

工具目录

分类

查看所有分类
Loading categories
lab-cve-2023-4863 — 基于 Docker 的实验环境,用于复现 CVE-2023-4863(libwebp 堆缓冲区溢出),包含自动崩溃演示、修补版与易受攻击版的对比,以及在隔离网络中进行基于 GUI 的浏览器利用。 | Kitploit
工具/GitHubGitHub/pixelotes/lab-cve-2023-4863
漏洞分析漏洞利用CTF学习与教育二进制利用实验室与实践
GitHubpixelotes/lab-cve-2023-4863

lab-cve-2023-4863

基于 Docker 的实验环境,用于复现 CVE-2023-4863(libwebp 堆缓冲区溢出),包含自动崩溃演示、修补版与易受攻击版的对比,以及在隔离网络中进行基于 GUI 的浏览器利用。

查看仓库
3个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2023-4863 — libwebp 漏洞利用实验室

在完全隔离且自动化的 Docker 环境中复现 CVE-2023-4863(libwebp 堆缓冲区溢出)。基于 CEFIRE 的道德黑客模块实践。

本实验室功能

在私有网络中启动八个容器:

容器角色
attacker使用 craft.c 生成 exploit.webp,并通过 HTTP 提供该文件以及一个模拟钓鱼页面
victim-cliUbuntu 22.04,带 libwebp 1.2.2-2ubuntu0.22.04.1(有漏洞版本)。自动下载并处理该漏洞利用文件 → 崩溃
victim-patchedUbuntu 22.04,带来自 Ubuntu 安全仓库的 libwebp(已修补)。同一漏洞利用文件 → 受控错误,无崩溃
victim-guiUbuntu 22.04,带 XFCE、VNC 和 Firefox 110(有漏洞版本)。浏览器因 exploit.webp 实际崩溃
victim-gui-patchedUbuntu 22.04,带 XFCE、VNC 和 Firefox 126(已修补)。同一漏洞利用文件 → 浏览器存活
postgresPostgreSQL — Guacamole 的后端认证及连接存储
guacdApache Guacamole 守护进程(协议代理)
guacamoleWeb 界面,通过 SSH 或 VNC 访问所有容器,无需额外安装

自动演示(victim-cli 对比 victim-patched)在启动时自动进行。GUI 中的可视化演示需要从 Guacamole 手动操作。

先决条件

  • Docker Engine 24+
  • Docker Compose v2
  • 约 5 GB 可用内存
  • 约 10 GB 磁盘空间(镜像 + 层)

启动实验室

root@kitploit:~
make up

make up 如果是首次运行会自动完成三件事:

  1. 生成 Guacamole 的 SQL 模式(从官方镜像执行 initdb.sh)
  2. 构建容器的镜像
  3. 启动所有服务

首次构建需要几分钟(下载基础镜像、克隆 PoC 仓库、安装软件包)。后续运行会使用 Docker 缓存,几乎是即时的。

完成后,你会在输出中看到 Guacamole 的 URL。受害者容器会在攻击者就绪并提供漏洞利用文件后(健康检查)才启动。

凭据

访问方式用户密码
Guacamole(Web)

查看自动演示(CLI)

在终端中,当实验室正在运行时:

root@kitploit:~
# 查看有漏洞受害者的崩溃情况
make logs-victim-cli

# 查看已修补受害者的受控响应
make logs-victim-patched

在 victim-cli 中你将看到:

root@kitploit:~
[*] 执行: dwebp /tmp/exploit.webp -o /tmp/salida.png

Decoding of exploit.webp failed.
Status: 3(BITSTREAM_ERROR)
*** glibc detected *** double free or corruption (!prev) ***
Aborted (core dumped)

[!] 退出代码: 134 (SIGABRT)
[!] CVE-2023-4863 已确认

在 victim-patched 中你将看到:

root@kitploit:~
[*] 执行: dwebp /tmp/exploit.webp -o /tmp/salida.png

Decoding of exploit.webp failed.
Status: 3(BITSTREAM_ERROR)

[+] 退出代码: 1 — 受控错误
[+] CVE-2023-4863 已缓解

桌面可视化演示(GUI)

最直观的演示是通过在 XFCE 桌面的终端中使用 dwebp 来比较 victim-gui(有漏洞)和 victim-gui-patched(已修补)。

步骤

  1. 在浏览器中打开 http://localhost:8888/guacamole
  2. 登录:guacadmin / guacadmin
  3. 在有漏洞的受害者(Firefox 110):
    • 选择 [VÍCTIMA GUI] VNC — Escritorio Chrome
    • 在 XFCE 桌面中打开一个终端
    • 执行:
      root@kitploit:~
      firefox --no-sandbox http://attacker/index.html
      
    • Firefox 110 尝试渲染 exploit.webp → 崩溃(SIGABRT,进程死亡)
  4. 在已修补的受害者(Firefox 126):
    • 选择 [VÍCTIMA GUI PATCH] VNC — Escritorio Chrome patch
    • 相同命令 → Firefox 126 处理错误而不崩溃

为什么用 Firefox 而不是 Chrome

Mozilla 在 releases.mozilla.org 上保留了一个公开且永久的版本存档。Google 已从其 CDN 中移除了旧版 Chrome 的 URL,导致无法可靠下载 Chrome 116。Firefox 110 同样存在漏洞(两者内部都捆绑 libwebp),并且从 Mozilla 存档下载是稳定且可重现的。

通过 SSH 直接访问(无需 Guacamole)

root@kitploit:~
ssh root@localhost -p 2220   # attacker
ssh root@localhost -p 2221   # victim-cli
ssh root@localhost -p 2223   # victim-patched
ssh root@localhost -p 2222   # victim-gui
ssh root@localhost -p 2224   # victim-gui-patched

直接 VNC:localhost:5900(victim-gui)和 localhost:5901(victim-gui-patched)。

常用命令

root@kitploit:~
make logs                    # 所有容器的实时日志
make status                  # 容器状态
make shell-attacker          # 进入攻击者 shell
make shell-victim-cli
make shell-victim-gui
make shell-victim-gui-patched
make down                    # 停止实验室
make clean                   # 停止并删除镜像和网络

备注

Chrome 与 libwebp: Chrome 捆绑了自己的 libwebp 副本(不使用系统版本)。≥ 116.0.5845.187 的版本包含修补程序。由于 Google 移除了旧版本的 URL,Dockerfile 会回退到当前的稳定版本(已修补)。使用 dwebp 的崩溃演示同样有效且更可靠。

隔离网络: 运行时任何容器都无法访问互联网。所有流量都停留在私有 Docker 网络 cve4863-lab-net 内。

下载工具
guacadmin
guacadmin
所有容器的 SSHroottoor
VNC(victim-gui 和 victim-gui-patched)—secret