KingOfBugbounty/Dependency-Confusion-Hunter

GitHub: KingOfBugbounty/Dependency-Confusion-Hunter

一款用于被动扫描网页依赖混淆漏洞的Chrome扩展,能自动检测npm和PyPI内部私有包是否存在被公共注册表劫持的风险。

Stars: 31 | Forks: 8

# 🎯 Dependency Confusion Hunter Chrome Extension Manifest V3 Version License ### 🔍 依赖混淆漏洞被动扫描器

[![Twitter](https://img.shields.io/badge/Twitter-@ofjaaah-1DA1F2?style=for-the-badge&logo=twitter&logoColor=white)](https://twitter.com/ofjaaah) [![YouTube](https://img.shields.io/badge/YouTube-OFJAAAH-FF0000?style=for-the-badge&logo=youtube&logoColor=white)](https://www.youtube.com/c/OFJAAAH) **在浏览时自动检测易受依赖混淆攻击的包**
## 📋 关于 **Dependency Confusion Hunter** 是一个 Chrome 扩展程序,用于被动监控网页,查找可能易受依赖混淆攻击的包。它分析 JavaScript 文件和 source maps,以识别在公共注册表(npm、PyPI)中不存在的内部/私有依赖。 ### 🎯 什么是依赖混淆? 依赖混淆是一种供应链攻击,攻击者向公共注册表发布一个与内部/私有包同名的恶意包。如果包管理器配置不正确,它可能会下载恶意的公共包,而不是私有包。 ``` // Example: Internal package that doesn't exist on npm import { auth } from 'company-internal-auth'; // ⚠️ Vulnerable! // An attacker can publish 'company-internal-auth' to npm // and compromise systems that try to install it ``` ## ⚡ 功能
### 🔍 检测 - ✅ 被动监控(无干扰) - ✅ JavaScript 文件分析 - ✅ Source map (.map) 解析 - ✅ NPM & PyPI 注册表检查 - ✅ 支持作用域包 (@scope/pkg) ### 🛠️ 工具 - 📊 实时仪表板 - 🔔 浏览器通知 - 💬 Discord webhook 警报 - 🌐 代理支持 (Burp Suite) - 📝 一键命令导出
## 🚀 安装 ### 方法 1:加载已解压的扩展(开发者模式) ``` # 1. Clone 此 repository git clone https://github.com/KingOfBugbounty/Dependency-Confusion-Hunter.git # 2. 打开 Chrome 并前往 chrome://extensions/ # 3. 启用 "Developer mode" (右上角) # 4. 点击 "Load unpacked" # 5. 选择已 clone 的文件夹 ``` ### 方法 2:生成图标(如果缺失) ``` python3 create_icons.py ``` ## 🔧 配置 ### Discord Webhook(可选) 在 Discord 上接收即时警报: 1. 前往您的 Discord 频道 → 设置 → 集成 → Webhooks 2. 创建一个新的 webhook 3. 复制 webhook URL 4. 粘贴到扩展设置中 ### 代理支持(可选) 通过 Burp Suite 或公司代理路由流量: ``` http://127.0.0.1:8080 ``` ## 📖 使用方法 ``` 1️⃣ Install the extension ↓ 2️⃣ Browse websites normally ↓ 3️⃣ Extension analyzes JS files passively ↓ 4️⃣ Get alerts for vulnerable packages ↓ 5️⃣ Click extension icon to see results ``` ## 🎯 检测模式 ### NPM 包 ``` // All these patterns are detected: require('package-name') import x from 'package-name' import('package-name') import { x } from '@scope/package' // References in node_modules/ ``` ### Python 包 ``` # 检测到以下模式: import package_name from package_name import x pip install package-name ``` ## 📊 仪表板
📈 统计信息 📋 漏洞列表 ⚙️ 操作
• 发现的包总数
• 已分析的文件
• 漏洞数量
• 包名称
• 注册表类型 (npm/pip)
• 源 URL
• 复制包名称
• 复制 npm publish 命令
• 打开注册表
## 🛡️ 安全与道德 ### ✅ 预期用途 - 授权渗透测试 - 漏洞赏金计划 - 安全研究 - 教育目的 - CTF 竞赛 ### ❌ 禁止用于 - 未授权的利用 - 发布恶意包 - 供应链攻击 - 未经许可入侵系统 ## 📁 项目结构 ``` Dependency-Confusion-Hunter/ ├── manifest.json # Extension configuration ├── background.js # Service worker (main logic) ├── content.js # Page content analyzer ├── injected.js # Injected script context ├── popup.html/js # Extension popup UI ├── options.html/js # Settings page ├── styles.css # Styles ├── icons/ # Extension icons │ ├── icon16.png │ ├── icon48.png │ └── icon128.png └── create_icons.py # Icon generator script ``` ## 🐛 故障排除 | 问题 | 解决方案 | |---------|----------| | 无检测结果 | 检查站点是否有 JavaScript 文件 | | 无通知 | 检查 Chrome 通知权限 | | Discord 不工作 | 验证 webhook URL 是否正确 | | 扩展未加载 | 确保支持 Manifest V3 | ## 📚 参考资料 - [Alex Birsan - Dependency Confusion](https://medium.com/@alex.birsan/dependency-confusion-4a5d60fec610) - [NPM Registry API](https://github.com/npm/registry/blob/master/docs/REGISTRY-API.md) - [PyPI JSON API](https://warehouse.pypa.io/api-reference/json.html)
标签:Dependency Confusion, DNS解析, JavaScript安全, Manifest V3, npm, PyPI, Snort++, Source Map分析, Web安全, WSL, 依赖混淆, 前端安全, 包管理器安全, 多模态安全, 子域名暴力破解, 开源项目, 数据可视化, 浏览器插件, 自动化检测, 自定义脚本, 蓝队分析, 被动扫描