cc1a2b/JShunter

GitHub: cc1a2b/JShunter

一款用 Go 编写的命令行 JavaScript 安全分析工具,专注于从前端代码中自动发现 API 端点、敏感凭据和潜在安全问题。

Stars: 515 | Forks: 60

# JSHunter
[![许可证](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE) [![Go 版本](https://img.shields.io/badge/Go-1.22.5+-00ADD8?style=flat&logo=go)](https://golang.org) [![发布版](https://img.shields.io/github/release/cc1a2b/jshunter.svg)](https://github.com/cc1a2b/jshunter/releases) [![GitHub stars](https://img.shields.io/github/stars/cc1a2b/jshunter)](https://github.com/cc1a2b/jshunter/stargazers) [![平台](https://img.shields.io/badge/platform-Linux%20%7C%20macOS%20%7C%20Windows-lightgrey)](https://github.com/cc1a2b/jshunter/releases) **🔍 专业的 JavaScript 安全分析工具** *为安全专业人员提供完整的端点发现、敏感数据检测和高级代码分析*
## 📖 关于 **JSHunter** 是一个用于 JavaScript 安全分析和端点发现的综合命令行工具。专为安全专业人员、渗透测试人员和开发人员构建,它通过高精度的检测算法和专业的报告功能,提供企业级的分析能力。
JSHunter Demo Screenshot *JSHunter 实战演示 - 专业的 JavaScript 安全分析*
## 📑 目录 - [关于](#-about) - [功能](#-features) - [安装说明](#-installation) - [快速开始](#-quick-start) - [使用示例](#-usage-examples) - [命令参考](#-command-reference) - [高级用法](#-advanced-usage) - [贡献](#-contributing) - [许可证](#-license) - [支持](#-support) ## ✨ 功能 ### 🎯 核心能力 - **🔍 全面的端点发现**:自动从 JavaScript 文件中提取 URL、API 端点和隐藏参数 - **🔐 高级安全分析**:高精度识别 API 密钥、JWT token、凭据和潜在漏洞 - **📥 灵活的输入方式**:支持 URL、文件列表、本地文件、stdin 管道和递归发现 - **⚡ 高性能架构**:多线程并发处理与智能速率限制 - **🎭 专业隐蔽功能**:代理支持、自定义 headers、user-agent 轮换和绕过检测 ### 🎯 智能检测引擎 - **🎯 智能 Base64 检测**:高精度过滤,消除来自媒体内容和编码数据的误报 - **🏢 专业界面**:企业级的术语、文档和全面的报告格式 - **🧠 上下文感知分析**:高级算法区分真实的安全 token 和编码的媒体数据 - **📊 熵分析**:数学算法精确识别真实的安全 token 和凭据 ### 🌐 专业的 HTTP 与网络套件
企业级网络配置 **认证与 Headers:** - **🔧 自定义 Headers** (`-H`):可重复的认证 headers 和自定义请求 headers - **🍪 Cookie 管理** (`-c`):用于访问受保护资源的 session cookies - **🎭 User-Agent 控制** (`-U`):自定义 UA 字符串或基于文件的轮换,以实现隐蔽 **性能与可靠性:** - **⏱️ 速率限制** (`-R`):可配置的请求延迟(毫秒),以避免被检测 - **⏰ 智能超时** (`-T`):针对不同网络条件的自定义超时设置 - **🔄 智能重试** (`-y`):针对失败请求的带有指数退避的自动重试机制 **专业集成:** - **🔗 代理支持** (`-p`):完全支持 Burp Suite 和自定义代理集成 (HTTP/HTTPS/SOCKS5) - **🔒 TLS 灵活性** (`-k`):可选的证书验证绕过,适用于测试环境 - **🎯 线程控制** (`-t`):可配置的并发请求处理,实现最佳性能
### 📝 高级 JavaScript 分析
完整的代码分析与反混淆套件 **核心分析工具:** - **🧩 反混淆引擎** (`-d`):解压并还原被压缩和混淆的 JavaScript 以进行深入分析 - **🗺️ Source Map 解析器** (`-m`):从 source maps 中提取并分析原始源代码 - **🔍 混淆检测** (`-z`):识别并分类混淆技术和模式 **动态分析:** - **⚡ Eval 分析** (`-e`):分析动态代码执行 (`eval()`、`Function()`、运行时生成) **代码智能:** - **🔍 模式识别**:识别常见的 JavaScript 框架和库 - **📊 代码结构分析**:映射应用程序架构和数据流 - **🎯 上下文感知检测**:理解代码上下文以减少误报
### 🔐 安全分析套件
完整的安全评估工具包 **核心安全检测:** - **🔑 密钥检测** (`-s`):API 密钥、access token、密码和硬编码凭据 - **🎫 JWT Token 分析** (`-x`):认证 token 提取、验证和 payload 检查 - **🔥 Firebase 安全** (`-F`):配置分析、API 密钥和数据库 URL 检测 **高级分析:** - **📋 参数发现** (`-P`):隐藏的表单参数、变量和配置键 - **🔗 URL 参数提取** (`-PU`):具有完整 URL 上下文的高级参数分析 - **📊 GraphQL 分析** (`-g`):schema 检测、查询提取和端点发现 - **🛡️ WAF 绕过检测** (`-B`):安全绕过模式和规避技术 **范围与上下文:** - **🏠 内部端点过滤** (`-i`):私有/内部资源识别和分类 - **🌐 链接分析** (`-L`):全面的 URL 提取和关系映射
### 🎯 范围与发现
智能爬取与目标定位 - **🔍 递归发现**:多深度 JavaScript 文件爬取 - **🌍 域名范围限定**:专注于特定域名的分析 - **📂 扩展名过滤**:定位特定的 JavaScript 文件类型
### 📤 专业报告与导出套件
企业级输出与集成 **核心输出格式:** - **🖥️ 控制台显示**:带有专业格式和清晰分类的彩色终端输出 - **📄 文件导出** (`-o`):将全面的结果保存到自定义文件位置 - **📊 JSON 导出** (`-j`):用于自动化和编程处理的结构化数据格式 - **📈 CSV 导出** (`-C`):兼容电子表格的格式,用于执行报告和分析 **专业集成:** - **🔴 Burp Suite 导出** (`-n`):与 Burp Suite Professional 直接集成,用于即时测试 - **🎯 正则表达式过滤** (`-r`):自定义模式匹配,用于有针对性的结果过滤 - **🔍 详细分析** (`-v`):带有调试信息和上下文的详细分析输出 **结果管理:** - **✨ 清理模式** (`--found-only`):隐藏空结果,专注于安全报告 - **🤫 安静模式** (`-q`):隐藏 banner,用于自动化脚本和 CI/CD 集成
## 📦 安装说明 ### Go Install(推荐) ``` # 安装 JSHunter go install -v github.com/cc1a2b/jshunter/cmd/jshunter@latest # 验证安装 jshunter --help ``` ### 从源码构建 ``` git clone https://github.com/cc1a2b/jshunter.git cd jshunter go build -o jshunter ./cmd/jshunter ``` ### 系统要求 - **Go 1.22.5+**(用于从源码构建) - **Linux、macOS 或 Windows**(64 位架构) - 用于远程 JavaScript 分析的**网络连接** ## 🚀 快速开始 ### 基础分析 ``` # 分析单个 JavaScript 文件 jshunter -u "https://example.com/app.js" # 从文件扫描多个 URL jshunter -l urls.txt # 分析本地 JavaScript 文件 jshunter -f app.js ``` ### 完整安全分析 ``` # 查找 API keys、secrets 和 credentials jshunter -u "https://target.com/app.js" -s # 包含 deobfuscation、GraphQL 和 Firebase 检测的完整分析 jshunter -u "https://target.com/app.js" -d -s -g -F -x -L # 使用所有工具的专业安全评估 jshunter -u "https://target.com/app.js" -d -m -e -s -x -P -g -F -B -L # 导出综合结果用于报告 jshunter -l targets.txt -s -g -F -j -o security_findings.json ``` ## 💡 使用示例 ``` # 分析单个 URL jshunter -u "https://example.com/app.js" # 从文件分析多个 URL jshunter -l urls.txt # 通过 stdin 管道传输 URL cat urls.txt | grep "\.js" | jshunter # 完整安全分析 - 查找 secrets、API keys 和 credentials jshunter -u "https://example.com/app.js" -s -x -F # 包含 deobfuscation 和所有安全工具的完整分析套件 jshunter -u "https://target.com/app.js" -d -m -e -s -x -P -g -F -B -L # 包含 source map 分析的专业评估 jshunter -u "https://target.com/bundle.js" -d -m -s -g -F # 导出综合结果为结构化格式 jshunter -l targets.txt -s -x -F -g -j -o security_findings.json # 集成 Burp Suite 的隐蔽扫描 jshunter -l targets.txt -p 127.0.0.1:8080 -s -g -F -n -o burp_findings.txt # 通过 SOCKS5 proxy 扫描 (Tor、SSH tunnel 等) jshunter -l targets.txt -p socks5://127.0.0.1:9050 -s -x -F # 带身份验证的限速专业扫描 jshunter -l urls.txt -R 2000 -H "Authorization: Bearer token" -s -x -F -g -q # 完整的 endpoint 和参数发现 jshunter -l urls.txt -ep -P -PU -L -w 2 # 带上下文检测的高级 obfuscation 分析 jshunter -f obfuscated.js -d -z -e -s -v ``` ## 📋 命令参考 随时使用 `jshunter --help` 获取完整的帮助信息 ``` Usage: -u, --url URL Input a URL -l, --list FILE.txt Input a file with URLs (.txt) -f, --file FILE.js Path to JavaScript file --har FILE Ingest a Chrome DevTools HAR archive Basic Options: -t, --threads INT Number of concurrent threads (default: 5) -c, --cookies Authentication cookies for protected resources -p, --proxy host:port HTTP/SOCKS5 proxy (e.g., 127.0.0.1:8080 for Burp Suite) -q, --quiet Suppress ASCII art output --no-color Disable ANSI color (auto-off when not a TTY) -o, --output FILENAME Output file path -r, --regex RegEx for filtering results --update, --up Update the tool to latest version -ep, --end-point Extract endpoints from JavaScript files -k, --skip-tls Skip TLS certificate verification -fo, --found-only Only show results when sensitive data is found HTTP Configuration: -H, --header "Key: Value" Custom HTTP headers (repeatable, including Auth) -U, --user-agent UA Custom User-Agent string or file path -R, --rate-limit MS Request rate limiting delay (milliseconds) -T, --timeout SEC HTTP request timeout (seconds) -y, --retry INT Retry attempts for failed requests (default: 2) --per-host INT Per-host outbound concurrency cap (default: 4) --max-bytes N Cap response body read in bytes (default: 32MiB) --allow-internal Permit localhost / RFC1918 / link-local targets --cache-dir DIR Persist responses on disk; revalidate via ETag JavaScript Analysis: -d, --deobfuscate Deobfuscate minified and obfuscated JavaScript -m, --sourcemap Fetch and parse source maps + sourcesContent[] -e, --eval Analyze dynamic code execution (eval, Function) -z, --obfs-detect Detect code obfuscation patterns and techniques --inline-html Scan inline