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

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

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

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

工具目录

分类

查看所有分类
Loading categories
gitlab-rce-demo — 通过笔记本 diff 渲染,利用 Oj 解析器中的两个 Ruby 内存损坏漏洞实现 GitLab RCE 的自包含演示。 | Kitploit
工具/GitHubGitHub/wupco/gitlab-rce-demo
漏洞利用Web应用程序漏洞利用二进制利用实验室与实践
GitHubwupco/gitlab-rce-demo

gitlab-rce-demo

通过笔记本 diff 渲染,利用 Oj 解析器中的两个 Ruby 内存损坏漏洞实现 GitLab RCE 的自包含演示。

查看仓库
9422127天前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

GitLab Oj RCE 演示

该仓库包含一个自包含的演示环境,用于我们研究中描述的 GitLab notebook-diff RCE 漏洞链。它会启动一个全新的 GitLab 18.11.3 容器,通过公开的 HTTP 接口创建一个普通用户,并针对该实例运行 PoC。

技术细节:Going depthfirst:通过两个 Ruby 内存破坏漏洞实现 GitLab RCE

环境要求

  • 基于 x86-64(amd64)架构的 Linux
  • 安装了 Docker Compose v2 的 Docker Engine
  • Bash、Python 3、curl、Git、iproute2 和 netcat

运行演示

首先,构建全新的 GitLab 环境:

root@kitploit:~
./setup_env.sh

该脚本会删除之前的演示容器及其卷,启动 GitLab,等待其就绪,并配置一个普通用户。全新启动 GitLab 可能需要几分钟时间。

打开两个终端。在第一个终端中启动回调监听器:

root@kitploit:~
./run_poc.sh listen 4555

在第二个终端中运行漏洞利用:

root@kitploit:~
./run_poc.sh exploit 4555

当回调到达时,切换到监听终端并运行 id 或 whoami 等命令。ASLR 搜索时间因运行而异。

成功的演示运行

工作原理

GitLab 在渲染 Jupyter notebook 差异时,会将仓库控制的 JSON 传递给原生 Ruby JSON 解析器 Oj。该漏洞链结合了两个解析器漏洞:一个用于破坏解析器状态并最终控制回调指针,另一个用于泄露用于缩小 ASLR 搜索范围的堆指针。PoC 加载预计算的查找表,通过正常的 GitLab HTTP 请求找到匹配的库布局,并让 Puma worker 以 git 用户身份回连到监听器。

请仅在附带的本地实验室环境中使用此演示。

下载工具