Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
gha-lab-6904b2ccbe — # 安全研究实验室:复现 CVE-2025-61584(GHSA-9g7x-737f-5xpc)——通过 pull_request_target 工作流(.github/workflows/pr.yml)中的 github.head_ref 实现命令注入 | Kitploit
工具/GitHubGitHub/pvharmo2/gha-lab-6904b2ccbe
漏洞分析漏洞利用学习与教育精选资源
GitHubpvharmo2/gha-lab-6904b2ccbe

gha-lab-6904b2ccbe

# 安全研究实验室:复现 CVE-2025-61584(GHSA-9g7x-737f-5xpc)——通过 pull_request_target 工作流(.github/workflows/pr.yml)中的 github.head_ref 实现命令注入

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

自动化研究产物 — 非上游项目。

本仓库是由自动化工具链为拉瓦尔大学(Université Laval)硕士论文构建的一次性实验环境,用于复现已发表的 GitHub Actions 工作流漏洞。它是 serverless-dns/serverless-dns 在提交 b0b1a1538aeb1991b5bc13dfe4e18e686913b12e(2025-04-26)时的逐字快照,依据该项目自身的许可证重新分发,该许可证文件已原样包含在本快照中。

上游项目未参与其中,也从未成为攻击目标,此处研究的漏洞已公开。本仓库中的每个密钥和变量均为随机生成的虚拟值——不存在任何真实凭据。操作引用和运行器镜像均固定为 2025-04-26 时解析到的版本;有关对快照所做的每项更改,请参阅工具链输出中的 pinning.md。

如有疑问或异议,请联系:[email protected]


是鸟,是飞机,是……一个自托管的、类 Pi-hole 的 DNS 解析器

serverless-dns 是一个类 Pi-Hole 的内容拦截、无服务器、存根 DNS-over-HTTPS (DoH) 和 DNS-over-TLS (DoT) 解析器。开箱即用地运行于 Cloudflare Workers、Deno Deploy、Fastly Compute@Edge 和 Fly.io。所有这些服务的免费套餐应足以覆盖每月 10 到 20 台设备的 DNS 流量。

RethinkDNS 解析器

RethinkDNS 在生产环境中于以下端点运行 serverless-dns:

云平台服务器位置协议域名使用方式
⛅ Cloudflare Workers280+ (ping)DoHsky.rethinkdns.com配置
🦕 Deno Deploy30+ (ping)DoH私有测试版
⏱️ Fastly Compute@Edge80+ (ping)DoH私有测试版
🪂 Fly.io30+ (ping)DoH 和 DoTmax.rethinkdns.com配置

服务端处理耗时从 0 毫秒(ms)到 2ms(中位数),端到端延迟(因地区和网络而异)介于 10ms 到 30ms(中位数)之间。

FOSS United 

Fly.io 上的 Rethink DNS 解析器由 FOSS United 赞助。

自托管

Cloudflare Workers 是搭建 serverless-dns 最简单的平台:

Deploy to Cloudflare Workers

Deploy to Fastly

如需分步说明,请参阅:

平台难度运行时文档
⛅ Cloudflare简单v8 Isolates托管于 Cloudflare Workers
🦕 Deno.com中等Deno Isolates托管于 Deno.com
⏱️ Fastly Compute@Edge简单Fastly JS托管于 Fastly Compute@Edge
🪂 Fly.io困难Node MicroVM托管于 Fly.io

要设置拦截列表,请从浏览器访问 https://<my-domain>.tld/configure(应加载与 RethinkDNS 的 configure 页面 类似的内容)。

如需帮助或支持,欢迎提交 issue 或提交补丁。


开发

OpenSSF Scorecard

环境搭建

代码:

# 导航到工作目录
cd /my/work/dir

# 克隆本仓库
git clone https://github.com/serverless-dns/serverless-dns.git

# 导航到 serverless-dns
cd ./serverless-dns

Node:

# 如有需要,通过 nvm 安装 node v22+
# https://github.com/nvm-sh/nvm#installing-and-updating
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
nvm install --lts

# 下载依赖
npm i

# (可选)更新依赖
npm update

# 在 node 上运行 serverless-dns
./run n

# 运行 clinicjs.org 分析器
./run n [cpu|fn|mem]

Deno:

# 安装 deno.land v2+
# https://github.com/denoland/deno/#install
curl -fsSL https://deno.land/install.sh | sh

# 在 deno 上运行 serverless-dns
./run d

Fastly:

# 如有需要,通过 nvm 安装 node v22+
# 安装 Fastly CLI
# https://developer.fastly.com/learning/tools/cli

# 在 Fastly Compute@Edge 上运行 serverless-dns
./run f

Wrangler:

# 安装 Cloudflare Workers (cli),即 Wrangler
# https://developers.cloudflare.com/workers/cli-wrangler/install-update
npm i wrangler --save-dev

# 在 Cloudflare Workers (cli) 上运行 serverless-dns
# 请确保先配置好 Wrangler:
# https://developers.cloudflare.com/workers/cli-wrangler/authentication
./run w

# 使用 Chrome DevTools 分析 wrangler
# blog.cloudflare.com/profiling-your-workers-with-wrangler

代码风格

本仓库的提交强制执行 Google JavaScript 风格指南(参考:.eslintrc.cjs)。 一个 git pre-commit 钩子会对 .js 文件运行 linter(eslint)和 formatter(prettier)。使用 git commit --no-verify 可绕过此钩子。

拉取请求也会检查代码风格违规,并在可能的情况下自动修复。

环境变量

如需调整默认值,请配置 env.js。 对于 Cloudflare Workers,请在 wrangler.toml 中设置环境变量。 对于 Fastly Compute@Edge,请在 fastly.toml 中设置环境变量。

请求流程

  1. 请求/响应流程:客户端 <-> src/server-[node|workers|deno] <-> doh.js <-> plugin.js
  2. plugin.js 流程:user-op.js -> cache-resolver.js -> cc.js -> resolver.js

认证

serverless-dns 支持对 DoH 和 DoT 使用字母数字 bearer token 进行认证。对于 token,msg-key(密钥),将 hex(hmac-sha256(msg-key|domain.tld), msg) 的输出以 csv 格式追加到 ACCESS_KEYS 环境变量中。注意:msg 当前固定为 sdns-public-auth-info。

  1. DoH:将 msg-key 放在 blockstamp 末尾,如下所示: 1:1:4AIggAABEGAgAA:<msg-key>(此处 1 是版本号,1:4AIggAABEGAgAA 是 blockstamp,<msg-key> 是认证密钥,: 是分隔符)。
  2. DoT:将 msg-key 放在包含 blockstamp 的 SNI(域名)末尾: 1-4abcbaaaaeigaiaa-<msg-key>(此处 1 是版本号,4abcbaaaaeigaiaa 是 blockstamp,<msg-key> 是认证密钥,- 是分隔符)。

如果打算同时对 DoT 使用认证,请将 msg-key 保持较短(8 到 24 个字符),因为子域总长度可能仅限 63 个字符。

你可以从 max.rethinkdns.com 为你的 fork 生成访问密钥,如下所示:

msgkey="ShortAlphanumericSecret"
domain="my-serverless-dns-domain.tld"
curl 'https://max.rethinkdns.com/genaccesskey?key='"$msgkey"'&dom='"$domain"
# 输出
# {"accesskey":["my-serverless-dns-domain.tld|deadbeefd3adb33fa2bb33fd3eadf084beef3b152beefdead49bbb2b33fdead83d3adbeefdeadb33f"],"context":"sdns-public-auth-info"}

日志与分析

serverless-dns 可通过 Cloudflare Logpush 上传日志。

下载工具