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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
grafana-gitsync-dns-rebind — Grafana OSS 13.2.3 - 高危 - 远程 - SSRF - Git Sync URLValidator 仅做准入 DNS 校验 | Kitploit
工具/GitHubGitHub/abraxas/grafana-gitsync-dns-rebind
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试红队实验室与实践
GitHubabraxas/grafana-gitsync-dns-rebind

grafana-gitsync-dns-rebind

Grafana OSS 13.2.3 - 高危 - 远程 - SSRF - Git Sync URLValidator 仅做准入 DNS 校验

查看仓库
4天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Abraxas Labs - grafana-gitsync-dns-rebind

abraxaslabs.tech  ·  github.com/abraxas  ·  @abraxas_null  ·  [email protected]  ·  grafana-gitsync-dns-rebind

grafana-gitsync-dns-rebind

类别: SSRF 可达性: 远程

Grafana OSS 13.2.3 (6193dc0) - Grafana Labs

Git Sync 的 URLValidator 在准入阶段检查仓库 URL 主机。nanogit / Test 稍后重新解析,且没有 IP 固定。isBlockedIP 仅包含回环、RFC1918、链路本地和未指定地址。字面量 0.0.0.1 未被阻止。在验证时是公网的主机名,可以在克隆 GET 时重新绑定到 RFC1918。

Org Admin 测试一个重新绑定的 Git URL,使 Grafana GET 一个验证器本应拒绝的内部主机。

ID暂无 CVE
类别SSRF(DNS 重绑定 / 0.0.0.0/8 缺口)
可达性远程(Org Admin repositories:create)
CWECWE-918 / CWE-367
CVSSHigh: 7.7 CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:C/C:H/I:N/A:N
产品Grafana OSS
受影响版本13.2.3 (6193dc0);Git Sync 默认开启
认证Org Admin(repositories:create / :write)。不是 Viewer/Editor 创建。
许可证GNU Affero GPL v3.0
实验环境仅 127.0.0.1

攻击者能做什么

行为者是 Org Admin,不是陌生人。Org Admin 在 OSS 上已经可以将数据源指向内部 URL。这个遗留问题是绕过 Git Sync 的 URLValidator,该验证器本意是为仓库 URL 关闭这一类问题。

权限方法 / 汇聚点侦察 / 完整性 / 可用性实验证明或推断
使 Grafana GET 一个重新绑定的 Git URLOrg Admin POST .../repositories/{name}/test,带 spec.git.url=http://git.lab/...侦察(从 Grafana 进程发起出站 HTTP)实验证明。DNS A1 公网,之后 A 为 RFC1918。重绑定 oracle hits=3,witness 在响应体中
访问字面量 0.0.0.1 Git URL同样的 Test,带 http://0.0.0.1:18080/lab/gitsync.git侦察实验证明在准入阶段未被阻止(状态 400 传输错误,而非 422 public-or-allowed)
从该主机读取 Git Smart HTTP / HTTP 响应体到 Test 错误中gitRepository.Test 插值传输错误侦察从固定行为推断。实验使用了 200 git advertisement
准入后重绑定到 RFC1918 / CGNATTOCTOU:先验证 DNS,再 nanogit 拨号侦察对 RFC1918 sidecar 172.30.60.3 实验证明
Viewer 读取存储的 spec.*.url,包括 userinforepositories:read侦察从固定行为推断。非本实验

在此遗留问题上已关闭(实验证明):字面量回环 127.0.0.1 422;RFC1918 字面量 10.0.0.1 422;IMDS 169.254.169.254 422。已关闭:Editor 无法创建仓库。非 RCE。不需要 Grafana Admin。跳过 Grafana G2(IAM SSOSetting k8s authorizer)。

我是如何发现的

apps/provisioning/pkg/repository/validator.go 中的准入调用 URLValidator.ValidateURL。isBlockedIP 是四个谓词。未指定仅指 0.0.0.0 / ::。0.0.0.0/8 的其余部分和 CGNAT 通过。克隆稍后使用 nanogit.NewHTTPClient(gitConfig.URL) 并重新解析。

已记录的弯路:将 Org Admin DS URL 视为本遗留问题(那些是有意为之;这是 Git Sync 验证器绕过);期望 IMDS 169.254 通过(在准入阶段被阻止);Editor 创建(被拒绝);反向 shell。纯属表演。

实验

python3 grafana-gitsync-dns-rebind-Abraxas-Labs.py

或:

cd lab
./run.sh

回环:Grafana 127.0.0.1:19360,DNS 控制 127.0.0.1:19361,重绑定 oracle 127.0.0.1:19362。镜像 grafana/grafana:13.2.3。

SUCCESS GRAFANA-GITSYNC-DNS-REBIND how=live actor=org-admin path=rebind dns_lookups=4 negatives=3 GRAFANA-GITSYNC-DNS-REBIND-WITNESS

修复方案

在克隆/Test 过程中固定解析后的地址,或在每次拨号时重新验证。将 0.0.0.0/8 和 CGNAT 视为已阻止。不要在未固定的情况下对允许列表主机跳过 DNS。

参考资料

  • github.com/grafana/grafana 标签 v13.2.3
  • url_validator.go · validator.go
  • CWE-918 · CWE-367

许可证

GNU Affero GPL v3.0。参见 LICENSE。仅限回环实验。无担保。

下载工具