
jshunter एक कमांड-लाइन टूल है जो JavaScript फ़ाइलों का विश्लेषण करने और endpoints निकालने के लिए डिज़ाइन किया गया है। यह टूल संवेदनशील डेटा, जैसे कि API endpoints और संभावित सुरक्षा कमजोरियों की पहचान करने में विशेषज्ञता रखता है, जिससे यह बग बाउंटी शिकारियों और सुरक्षा शोधकर्ताओं के लिए एक आवश्यक संसाधन बन जाता है।
प्रोफेशनल JavaScript सुरक्षा विश्लेषण उपकरण
सुरक्षा पेशेवरों के लिए पूर्ण एंडपॉइंट खोज, संवेदनशील डेटा पहचान, और उन्नत कोड विश्लेषण
JSHunter JavaScript सुरक्षा विश्लेषण और एंडपॉइंट खोज के लिए एक व्यापक कमांड-लाइन उपकरण है। सुरक्षा पेशेवरों, पेनिट्रेशन टेस्टरों, और डेवलपर्स के लिए बनाया गया, यह उच्च-सटीकता पहचान एल्गोरिदम और प्रोफेशनल रिपोर्टिंग सुविधाओं के साथ एंटरप्राइज़-ग्रेड विश्लेषण क्षमताएं प्रदान करता है।
https://github.com/user-attachments/assets/5a5f60fa-f8dc-4aac-bd06-2e93779f9af4
JSHunter कार्यरत — CLI का वास्तविक टर्मिनल कैप्चर (दिखाया गया प्रत्येक सीक्रेट नकली परीक्षण डेटा है)
उन्नत विश्लेषण एल्गोरिदम के साथ एंटरप्राइज़-ग्रेड सटीकता
JSHunter जिस JavaScript को स्कैन करता है उसे केवल पैटर्न-मैचिंग के बजाय पार्स करता है। एक सिंगल-पास ECMAScript स्कैनर प्रतिक्रिया के प्रत्येक बाइट को स्ट्रिंग लिटरल, टेम्पलेट लिटरल, कमेंट, रेगुलर-एक्सप्रेशन लिटरल, या कोड के रूप में वर्गीकृत करता है, और डिटेक्शन नियमों का मूल्यांकन उस वर्गीकरण के विरुद्ध किया जाता है।
यह मायने रखता है क्योंकि एक regex को पता नहीं होता कि उसने क्या मैच किया। वही चालीस base64 अक्षर स्ट्रिंग लिटरल के अंदर "क्रेडेंशियल" का अर्थ रखते हैं, मिनिफाइड आइडेंटिफायर के अंदर "चंक हैश" का, और कुछ भी नहीं जब वे दो आसन्न टोकन के बीच की सीमा पर हों। यह जानना कि कौन सा है, निकटता ह्यूरिस्टिक्स के ढेर को एक संरचनात्मक उत्तर से बदल देता है:
key शब्द के लिए अक्षरों की एक निश्चित विंडो स्कैन करने के बजाय,
इंजन उस आइडेंटिफायर या प्रॉपर्टी कुंजी को पुनर्प्राप्त करता है जिससे मान वास्तव में बंधा है —
const stripeSecret = "..." बहुत अलग पढ़ा जाता है {contentHash: "..."} से, और एक
केवल-आकार नियम अब उस बाइंडिंग की आवश्यकता रखता है।role claim से पढ़े जाते हैं, Twilio SIDs — को लीक के रूप में रिपोर्ट करने के बजाय वर्गीकृत किया जाता है।
--include-public उन्हें फिर भी रिपोर्ट करता है।प्रत्येक अस्वीकृति इस शर्त पर निर्भर है कि बॉडी विश्वास के साथ JavaScript या JSON है।
किसी और चीज़ पर — एक .env फ़ाइल, गद्य, कच्चा HTML — इंजन साक्ष्य योगदान देता है लेकिन कभी दबाता नहीं, इसलिए एक गलत वर्गीकृत इनपुट कभी सीक्रेट छिपा नहीं सकता।
--no-structural पूरी परत को बंद कर देता है और v0.7 व्यवहार बहाल करता है।
निष्कर्ष --json, --ndjson और
SARIF प्रॉपर्टी बैग में एक evidence ऑब्जेक्ट के रूप में तर्क साथ रखते हैं:```json
"exposure": "secret",
"evidence": {
"region": "string-literal",
"role": "assignment",
"bound_to": "awsAccessKeyId",
"shape": "opaque-token",
"charset": "alphanumeric",
"signals": [
{"name": "in-literal", "delta": 0.04, "detail": "value is a complete string-literal"},
{"name": "credential-binding", "delta": 0.12, "detail": "bound to 'awsAccessKeyId'"}
]
}
`--stats` रिपोर्ट करता है कि प्रत्येक चरण ने क्या छोड़ा, इसलिए पाइपलाइन ऑडिट करने योग्य बनी रहती है।
### Chunk Graph और Route Discovery
एक आधुनिक एप्लिकेशन एक entry bundle और कई सौ lazily loaded
chunks भेजता है जिनके URLs रनटाइम पर bundler द्वारा inline किए गए manifest से
असेंबल किए जाते हैं। उनसे कोई लिंक नहीं जुड़ता, इसलिए crawler उन्हें कभी नहीं देखता। `-G` उस manifest को
पुनर्प्राप्त करता है और पूरी asset सूची तथा client route तालिका प्रिंट करता है:```console
$ jshunter -u https://target.example/_next/static/chunks/main-a1b2c3.js -G
[CHUNKS] https://target.example/...: next runtime, 214 chunks, 37 routes
[CHUNK] https://target.example/... https://target.example/_next/static/chunks/settings.11aa22bb33cc.js
[ROUTE] https://target.example/... /admin/users/:id
समर्थित रनटाइम: webpack 4 और 5 (__webpack_require__.u, miniCssF,
jsonpScriptSrc), Next.js बिल्ड मैनिफ़ेस्ट, Vite और Rollup (__vite__mapDeps,
__vitePreload), सादा डायनामिक import(), और React Router,
Vue Router तथा Angular से रूट टेबल। आउटपुट टैब-पृथक और डुप्लिकेट-रहित होता है, इसलिए यह सीधे
अगले स्कैन की इनपुट सूची के रूप में पाइप हो जाता है:```bash
jshunter -u https://target.example/main.js -G -q | awk -F'\t' '/^[CHUNK]/{print $3}' > chunks.txt
jshunter -l chunks.txt -s -j > findings.json
### व्यावसायिक HTTP और नेटवर्किंग सूट
<details>
<summary><strong>एंटरप्राइज़-ग्रेड नेटवर्क कॉन्फ़िगरेशन</strong></summary>
**प्रमाणीकरण और हेडर:**
- **कस्टम हेडर** (`-H`): दोहराने योग्य प्रमाणीकरण हेडर और कस्टम अनुरोध हेडर
- **कुकी प्रबंधन** (`-c`): संरक्षित संसाधनों तक पहुँचने के लिए सत्र कुकीज़
- **User-Agent नियंत्रण** (`-U`): स्टील्थ के लिए कस्टम UA स्ट्रिंग्स या फ़ाइल-आधारित रोटेशन
**प्रदर्शन और विश्वसनीयता:**
- **दर सीमित करना** (`-R`): पता लगने से बचने के लिए कॉन्फ़िगर करने योग्य अनुरोध विलंब (मिलीसेकंड)
- **स्मार्ट टाइमआउट** (`-T`): विभिन्न नेटवर्क स्थितियों के लिए कस्टम टाइमआउट सेटिंग्स
- **इंटेलिजेंट रीट्राई** (`-y`): विफल अनुरोधों के लिए एक्सपोनेंशियल बैकऑफ़ के साथ स्वचालित रीट्राई तंत्र
**व्यावसायिक एकीकरण:**
- **प्रॉक्सी समर्थन** (`-p`): पूर्ण Burp Suite और कस्टम प्रॉक्सी एकीकरण (HTTP/HTTPS/SOCKS5)
- **TLS लचीलापन** (`-k`): परीक्षण वातावरण के लिए वैकल्पिक प्रमाणपत्र सत्यापन बायपास
- **थ्रेड नियंत्रण** (`-t`): इष्टतम प्रदर्शन के लिए कॉन्फ़िगर करने योग्य समवर्ती अनुरोध प्रबंधन