
Go में साक्ष्य-उन्मुख DAST स्कैनर जो वेब ऐप्स और APIs को क्रॉल करता है, फिर पुनः चलाने योग्य प्रमाण के साथ अनुकूली SQLi, XSS, RCE, SSRF, और प्रमाणीकरण जाँच चलाता है।
उन्नत वेब सुरक्षा स्कैनर
एंडपॉइंट खोजें। वेब एप्लिकेशन का परीक्षण करें। साक्ष्य का निरीक्षण करें।
इंस्टॉलेशन · उपयोग · वर्कफ़्लो · प्रोफ़ाइल · कवरेज · रिपोर्ट · सहयोग · विशेषताएँ · चेंजलॉग
AKCA एक ओपन-सोर्स, साक्ष्य-उन्मुख डायनामिक एप्लिकेशन सिक्योरिटी टेस्टिंग (DAST) स्कैनर है जो Go में लिखा गया है। यह HTTP और ब्राउज़र-सहायित क्रॉलिंग, JavaScript विश्लेषण, API आयात, अनुकूली सक्रिय परीक्षण, निष्क्रिय निरीक्षण, और पुनः चलाने योग्य साक्ष्य को एक ही कमांड-लाइन वर्कफ़्लो में जोड़ता है।
कई स्कैनर किसी एप्लिकेशन को क्रॉल करते हैं और फिर हर खोजे गए एंडपॉइंट पर पेलोड का एक विस्तृत सेट भेजते हैं। यह रणनीति अनावश्यक ट्रैफ़िक उत्पन्न कर सकती है, रक्षात्मक प्रणालियों को ट्रिगर कर सकती है, और कमज़ोर संकेत उत्पन्न कर सकती है जिनके लिए पर्याप्त मैन्युअल ट्राइएज की आवश्यकता होती है। AKCA एक अधिक प्रासंगिक दृष्टिकोण अपनाता है: यह पहले लक्ष्य के बारे में जानकारी प्राप्त करता है, खोजे गए अटैक सरफेस का मॉडल बनाता है, और फिर टेक्नोलॉजी स्टैक, पैरामीटर, प्रमाणीकरण स्थिति, WAF व्यवहार, और उपलब्ध सत्यापन क्षमताओं के अनुसार परीक्षण चुनता है।
AKCA को इस प्रकार डिज़ाइन किया गया है:
लक्ष्य को समाप्त या अभिभूत करना लक्ष्य नहीं है। यह विचारपूर्वक अनुरोधों और उपयोगी साक्ष्य के साथ वास्तविक कमज़ोरियों को खोजना है।
AKCA परिपक्व व्यावसायिक प्लेटफ़ॉर्म जैसे Acunetix, Invicti/Netsparker, या Burp Suite Professional के साथ फीचर या डिटेक्शन समानता का दावा नहीं करता है। वे उत्पाद कई वर्षों में अनुभवी टीमों द्वारा बनाए गए हैं। AKCA को एक डेवलपर द्वारा उपलब्ध व्यक्तिगत समय में स्वतंत्र रूप से बनाए रखा जाता है, जो स्थापित सुरक्षा उपकरणों से प्रेरित है और मौलिक विचारों तथा समुदाय की प्रतिक्रिया से आकार लेता है। वर्तमान प्राथमिकता एक सरल, उपयोगी, और पारदर्शी स्कैनर है। एक ग्राफ़िकल इंटरफ़ेस की योजना तब बनाई गई है जब इंजन पर्याप्त रूप से स्थिर और विश्वसनीय हो जाएगा।
AKCA v0.2.4 स्कैन सत्र लाइव इंजन स्थिति, संसाधन टेलीमेट्री, और पुष्ट फाइंडिंग्स के साथ।
Go 1.25 या नया आवश्यक है।```bash go install github.com/akha-security/akca/engine/cmd/akca@latest akca --version
<details>
<summary>कमांड नहीं मिला? अपना PATH कॉन्फ़िगर करें।</summary>
डिफ़ॉल्ट Go इंस्टॉलेशन के लिए, Go बाइनरी डायरेक्टरी को अपने वर्तमान टर्मिनल के `PATH` में जोड़ें।
**Linux / macOS**```bash
export PATH="$(go env GOPATH)/bin:$PATH"
उस पंक्ति को अपने shell configuration में जोड़ें ताकि यह सत्रों के बीच बना रहे।
Windows PowerShell```powershell $env:Path += ";$(go env GOPATH)\bin"
For future sessions, add the same directory to your user `Path` environment variable. If you configured `GOBIN`, use that directory instead.
</details>
### Prebuilt binaries
Download your build from [GitHub Releases](https://github.com/akha-security/akca/releases/latest). Releases include `SHA256SUMS.txt` for checksum verification.
| Platform | Architecture | Asset |
| --- | --- | --- |
| Linux | x64 / ARM64 | `akca-linux-amd64` / `akca-linux-arm64` |
| macOS | Intel / Apple Silicon | `akca-darwin-amd64` / `akca-darwin-arm64` |
| Windows | x64 | `akca-windows-amd64.exe` |
On Linux or macOS, make the downloaded file executable. For Linux x64:```bash
chmod +x akca-linux-amd64
./akca-linux-amd64 --help
Windows पर, डाउनलोड का नाम बदलकर akca.exe करें और PowerShell में .\akca.exe --help चलाएँ। नीचे दिए गए उदाहरण मानते हैं कि akca आपके PATH पर उपलब्ध है।
ब्राउज़र-आधारित जाँचों के लिए Chrome, Chromium, या Edge आवश्यक है।
AKCA का उपयोग केवल उन सिस्टमों पर करें जिनके आप स्वामी हैं या जिनका परीक्षण करने की आपको अनुमति है। उदाहरण URL को अपने अधिकृत लक्ष्य से बदलें।
akca -u https://example.com
डिफ़ॉल्ट प्रोफ़ाइल `full` है। HTML रिपोर्ट सहेजने के लिए:```bash
akca -u https://example.com -f html -o report.html
SQL इंजेक्शन, XSS, और सर्वर-साइड इंजेक्शन जाँचें चलाएँ, जिसमें SSTI भी शामिल है:```bash akca -u https://example.com -m sql,xss,rce
निष्क्रिय जाँचें चलाएँ:```bash
akca -u https://example.com -m passive
Passive स्कैन अभी भी खोज और निरीक्षण के लिए अनुरोध भेजते हैं।
एक सत्र कुकी प्रदान करें:```bash akca -u https://example.com -c "session=YOUR_SESSION_COOKIE"
या एक प्राधिकरण हेडर:```bash
akca -u https://example.com -H "Authorization: Bearer YOUR_TOKEN"
कुछ प्राधिकरण जाँचों के लिए एकल सत्र से परे अतिरिक्त पहचान या स्थिति कॉन्फ़िगरेशन की आवश्यकता होती है।
akca -u https://api.example.com --api-spec ./openapi.yaml -m api
Discovery, OpenAPI/Swagger, RAML, Postman, HAR, GraphQL, WSDL, protobuf, और AsyncAPI इनपुट का समर्थन करता है, जिसमें समर्थित ZIP बंडल भी शामिल हैं। परीक्षण कवरेज आयातित प्रोटोकॉल और ऑपरेशन पर निर्भर करता है।
### प्रॉक्सी के माध्यम से ट्रैफ़िक का निरीक्षण करें```bash
akca -u https://example.com -p http://127.0.0.1:8080
सभी उपलब्ध विकल्पों के लिए akca --help चलाएँ।
रोज़मर्रा की संक्षिप्त सहायता के लिए akca -h का उपयोग करें, या पूर्ण विकल्प संदर्भ के लिए akca --help का उपयोग करें। स्कैन लक्ष्यों को स्पष्ट रूप से -u या --url के साथ प्रदान करना आवश्यक है।
-m के साथ एक प्रोफ़ाइल चुनें, या कई को कॉमा से अलग करके संयोजित करें।
| प्रोफ़ाइल | जाँचें |
|---|---|
full | सभी सक्षम सक्रिय और निष्क्रिय मॉड्यूल; डिफ़ॉल्ट |
sql | SQL और NoSQL इंजेक्शन |
xss | परावर्तित, संग्रहीत, DOM, और ब्लाइंड XSS; संबंधित क्लाइंट-साइड जाँचें |
rce | कमांड इंजेक्शन, SSTI, डीसेरिएलाइज़ेशन, और संबंधित जाँचें |
api | API एक्सपोज़र, BOLA/IDOR, BFLA, मास असाइनमेंट, और टोकन जाँचें |
graphql | GraphQL स्कीमा और ऑपरेशन जाँचें |
ssrf | SSRF, XXE, और संबंधित आउट-ऑफ-बैंड जाँचें |
auth | प्रमाणीकरण, प्राधिकरण, CSRF, और कुकी/हेडर जाँचें |
passive | मेटाडेटा, TLS, सुरक्षा हेडर, सीक्रेट्स, और घटक विश्लेषण |
fuzz | पथ, एक्सपोज़्ड आर्टिफैक्ट, ट्रैवर्सल, और संबंधित जाँचें |
निष्पादन खोजे गए एंडपॉइंट, कॉन्फ़िगरेशन, उपलब्ध सत्यापन क्षमताओं, और स्कैन सीमाओं पर निर्भर करता है। पूर्ण क्षमता गाइड के लिए FEATURES.md देखें।
AKCA एक चरणबद्ध पाइपलाइन का उपयोग करता है ताकि बाद की जाँचें पहले सीखे गए तथ्यों से लाभ उठा सकें:
कवरेज स्पष्ट है। छोड़ा गया, विफल, बजट-सीमित, या अधूरा लक्ष्य अपूर्ण कवरेज के रूप में दर्ज किया जाता है; इसे चुपचाप एक स्वच्छ सुरक्षा परिणाम के रूप में नहीं माना जाता है।
निम्नलिखित सूची कार्यान्वित खोज इंजनों और सुरक्षा-परीक्षण परिवारों का वर्णन करती है। व्यक्तिगत जाँचें केवल तब चलती हैं जब खोजी गई सतह, स्कैन प्रोफ़ाइल, कॉन्फ़िगरेशन, सुरक्षा नीति, और सत्यापन पूर्वापेक्षाएँ उन्हें लागू करती हैं। सूचीबद्ध क्षमता इस बात की गारंटी नहीं है कि किसी भेद्यता के प्रत्येक प्रकार का पता लगाया जाएगा।
कुल अनुरोध बजट और अधिकतम अवधि निर्धारित करें:```bash akca -u https://example.com --request-budget 5000 --time-budget 30m
या खोजे गए URL/method संयोजनों से मॉड्यूल बजट की गणना करें:```bash
akca -u https://example.com --requests-per-target 200
AKCA मॉड्यूल, URL और पैरामीटर में सीमित मॉड्यूल बजट वितरित करता है। अप्रयुक्त आवंटन आगे के कार्य में स्थानांतरित हो जाते हैं। एक सकारात्मक --request-budget --requests-per-target पर प्राथमिकता लेता है।
| विकल्प | उद्देश्य |
|---|---|
--request-budget 5000 | खोज, पुनःप्रयास और रीडायरेक्ट सहित कुल अनुरोधों को सीमित करें |
--requests-per-target 200 | खोजे गए URL/मेथड संयोजनों से मॉड्यूल बजट प्राप्त करें |
--crawler-budget 1000 | खोज अनुरोधों को सीमित करें |
--time-budget 30m | स्कैन अवधि को सीमित करें |
--rate-limit 5 | प्रति सेकंड अनुरोधों को सीमित करें |
--concurrency 4 | समवर्ती वर्करों को सीमित करें |
डिफ़ॉल्ट रूप से, मॉड्यूल स्कैन में कोई अनुरोध कोटा नहीं होता है। बजट रुकावटों को अपूर्ण कवरेज के रूप में रिपोर्ट किया जाता है। जब बाद का कार्य अप्रयुक्त बजट लौटाता है तो बाधित लक्ष्य स्वचालित रूप से फिर से शुरू नहीं होते हैं। कोई भी बजट सेटिंग प्रत्येक भेद्यता का पता लगाने की गारंटी नहीं देती है।
लिंक किए गए API/सेवा सबडोमेन डिफ़ॉल्ट लक्ष्य दायरे से बाहर हैं। एक ही रूट के अंतर्गत लिंक किए गए सबडोमेन को शामिल करने के लिए:```bash akca -u https://www.example.com --include-linked-api-subdomains
### पूर्ण स्कैन में अधिक समय क्यों लगता है
AKCA का डिफ़ॉल्ट पूर्ण स्कैन कवरेज और साक्ष्य गुणवत्ता के इर्द-गिर्द डिज़ाइन किया गया है, न कि न्यूनतम संभव समापन समय के। इसलिए इसका रनटाइम उन टूल्स से सीधे तुलनीय नहीं है जो उथले HTTP क्रॉल के बाद रुक जाते हैं या एकल प्रतिक्रिया अंतर से किसी भेद्यता की रिपोर्ट करते हैं।
एक व्यापक रन में अधिक समय लग सकता है क्योंकि AKCA:
- क्लाइंट-रेंडर किए गए रूट्स के लिए ब्राउज़र सत्र बनाए रखता है और JavaScript का निरीक्षण करता है, जिसमें आलसी रूप से लोड किए गए एप्लिकेशन चंक्स भी शामिल हैं।
- निष्कर्षों में पदोन्नत करने से पहले नियंत्रणों के साथ आशाजनक परिणामों को दोहराता है, जिससे सामान्य त्रुटियों, अस्थिर पृष्ठों और WAF प्रतिक्रियाओं के कारण होने वाले झूठे सकारात्मक को कम किया जा सके।
- जब किसी मॉड्यूल को मजबूत प्रमाण की आवश्यकता होती है तो पहचान-, स्थिति-, और कॉलबैक-जागरूक जाँच करता है।
- लक्ष्य पेसिंग, पुनः प्रयास, अनुरोध बजट, और आउट-ऑफ-बैंड अवलोकन विंडो का सम्मान करता है, बजाय गति को एकमात्र सफलता मीट्रिक मानने के।
स्कैन की अवधि एप्लिकेशन के आकार, प्रतिक्रिया विलंबता, प्रमाणीकरण प्रवाह, रक्षात्मक नियंत्रण, और कॉन्फ़िगर किए गए दायरे पर भी निर्भर करती है। तेज़ प्रतिक्रिया के लिए, `-m` के साथ केवल प्रासंगिक मॉड्यूल चुनें या स्पष्ट क्रॉल, अनुरोध, और समय बजट लागू करें। दर और समवर्तीता तभी बढ़ाएँ जब अधिकृत लक्ष्य अतिरिक्त ट्रैफ़िक को सुरक्षित रूप से संभाल सके। एक छोटा स्कैन जरूरी नहीं कि अधिक पूर्ण स्कैन हो।
## रिपोर्ट
`-f` के साथ एक आउटपुट प्रारूप और `-o` के साथ एक फ़ाइल पथ चुनें:```bash
akca -u https://example.com -f html -o report.html
समर्थित प्रारूप: HTML, JSON, Markdown, CSV, और SARIF। प्रत्येक आह्वान एक नया स्कैन प्रारंभ करता है।
HTML रिपोर्टें स्व-निहित होती हैं और इनमें AKCA लोगो, जोखिम और गंभीरता सारांश, भेद्यता आँकड़े, संरचित निष्कर्ष विवरण, और विस्तारणीय HTTP साक्ष्य शामिल होते हैं। अनुरोध और प्रतिक्रिया टैब एक संयुक्त दृश्य, पूर्ण-सामग्री विस्तार, और प्रतिलिपि बनाने का समर्थन करते हैं। जहाँ कोई निष्कर्ष मेल खाता प्रतिक्रिया मान संरक्षित रखता है, AKCA उसे पीले रंग में हाइलाइट करता है, जिससे आपको परावर्तित पेलोड या उजागर रहस्य का पता लगाने में मदद मिलती है। निष्क्रिय रहस्य निष्कर्ष मिलान के आसपास का अंश बनाए रखते हैं।
मॉड्यूल के आधार पर, निष्कर्षों में शामिल होते हैं:
टाइमिंग निष्कर्ष, अनुपस्थित हेडर, और बाहरी कॉलबैक में हाइलाइट करने के लिए कोई प्रतिक्रिया पाठ नहीं हो सकता है। उनका सत्यापन संदर्भ प्रासंगिक साक्ष्य प्रदान करता है।
जब स्कैनर ने एक पूर्ण कच्चा लेन-देन संग्रहीत किया हो, तो रिपोर्ट उसे बिल्कुल वैसा ही संरक्षित रखती है। पुराने या केवल-संरचित साक्ष्य को एक पारंपरिक Burp-शैली HTTP लेआउट में प्रस्तुत किया जाता है जिसमें एक अनुरोध पंक्ति, क्रमबद्ध हेडर, एक हेडर/बॉडी विभाजक, और मानक HTTP प्रतिक्रिया कारण वाक्यांश होते हैं। यदि ट्रांसपोर्ट कैप्चर सीमा ने किसी प्रतिक्रिया को काट दिया हो, तो रिपोर्ट यह स्पष्ट रूप से बताती है; यह संग्रहीत भाग को कभी भी अनुपलब्ध पूर्ण प्रतिक्रिया के रूप में प्रस्तुत नहीं करती है।
संग्रहीत निष्कर्ष को पुनः चलाएँ:```bash akca replay --finding 42
रिपोर्ट डिफ़ॉल्ट रूप से पहचाने गए क्रेडेंशियल्स को मास्क करती हैं। रॉ संग्रहीत साक्ष्य रीप्ले के लिए संरक्षित रहता है। स्कैन कॉन्फ़िगरेशन में `redact_reports` को `false` पर सेट करें, या रिपोर्ट API पर `redact=false` का उपयोग करें, केवल तब जब रॉ एक्सपोर्ट की आवश्यकता हो। साझा करने से पहले रिपोर्ट की समीक्षा करें: स्वचालित मास्किंग हर एप्लिकेशन-विशिष्ट सीक्रेट को पहचान नहीं सकती।
### क्रॉल और प्रूफ कॉन्फ़िगरेशन
क्रॉलर प्रत्येक क्रॉल चरण के दौरान एक ब्राउज़र सत्र बनाए रखता है, जिसमें कुकीज़ और ब्राउज़र स्टोरेज शामिल हैं। यह स्पष्ट गैर-फ़ॉर्म टैब और विस्तारणीय पैनलों का पता लगाता है; यह फ़ॉर्म को स्वतः भरता या सबमिट नहीं करता। ब्राउज़र अनुरोध अभी भी स्कोप और अनुरोध बजट का पालन करते हैं। आवश्यक तृतीय-पक्ष स्थिर निर्भरताओं के लिए, सटीक होस्टनाम अलग से कॉन्फ़िगर करें:```json
{
"browser_resource_domains": ["cdn.example.com"],
"redact_reports": true
}
यह उन होस्टों के लिए केवल GET/HEAD स्क्रिप्ट, स्टाइलशीट, इमेज, फ़ॉन्ट और मीडिया अनुरोधों की अनुमति देता है, क्रेडेंशियल और कस्टम हेडर हटा देता है। यह उन होस्टों को सक्रिय स्कैन स्कोप में नहीं जोड़ता या क्रॉस-ओरिजिन API कॉल की अनुमति नहीं देता। अवरुद्ध ब्राउज़र निर्भरताएँ कवरेज-गैप इवेंट उत्पन्न करती हैं।
खोजे गए URL तब भी बनाए रखे जाते हैं जब उन्हें विज़िट नहीं किया जा सकता। एक क्रॉल जो कतारबद्ध कार्य के साथ अपना बजट समाप्त कर लेता है, आंशिक स्कैन और एक गैर-शून्य CLI एग्ज़िट कोड उत्पन्न करता है। मॉड्यूल प्रीफ़्लाइट संदेश अनुपलब्ध पहचान/स्थिति नीतियों को कॉन्फ़िगर की गई सत्यापन क्षमताओं से अलग करते हैं।
अकॉन्फ़िगर किए गए रेट-लिमिट चेक अवलोकन उत्पन्न करते हैं, न कि भेद्यता निष्कर्ष। एक कॉन्फ़िगर किए गए थ्रेशोल्ड प्रमाण के लिए window_seconds भी आवश्यक है; यदि अनुरोध उस विंडो के भीतर फ़िट नहीं होते हैं, तो चेक अनिर्णायक है। SQLi अकेले 400 प्रतिक्रिया या अंकगणितीय मूल्यांकन को प्रमाण नहीं मानता। 400/422 प्रतिक्रियाओं में नई विक्रेता-विशिष्ट SQL त्रुटियों को रीप्ले और कंट्रोल सत्यापन पथ से गुज़रना होगा।
रिलीज़ विवरण के लिए CHANGELOG.md देखें।
AKCA प्रायोजन या व्यक्तिगत दान स्वीकार नहीं करता। कोड योगदान, परीक्षण, दस्तावेज़ीकरण और विचारशील प्रतिक्रिया का हमेशा स्वागत है।
Projeye maddi olarak destek olmak istiyorsanız, bana göndermek yerine Mehmetçik Vakfı, AFAD, Türk Kızılay veya Çocuk Hizmetleri Genel Müdürlüğü aracılığıyla desteklenen güvenilir sosyal yardım çalışmalarından birine bağış yapmanızı rica ediyorum. Mümkünse bağışınızı kızım Akça Aktaş adına yapın. Bağıştan sonra X üzerinden @caneraktas_ hesabına mesaj göndermeniz beni gerçekten çok mutlu eder.
यदि आप परियोजना का आर्थिक रूप से समर्थन करना चाहते हैं, तो कृपया अपने देश में किसी प्रतिष्ठित धर्मार्थ संस्था को दान दें जो बच्चों, आपदा-प्रभावित समुदायों, दिग्गजों या तत्काल ज़रूरत वाले लोगों की मदद करती है। जब संभव हो, दान मेरी बेटी Akça Aktaş के नाम पर करें। आप इसे मुझसे X पर @caneraktas_ पर साझा कर सकते हैं; यह जानना कि इस परियोजना ने एक सहायक कार्य को प्रेरित किया, मेरे लिए बहुत मायने रखेगा।
स्रोत से बिल्ड करें:```bash git clone https://github.com/akha-security/akca.git cd akca/engine go build -buildvcs=false -trimpath -o ../akca ./cmd/akca
Windows पर, executable नाम के लिए `-o ../akca.exe` का उपयोग करें।
`engine` directory से checks चलाएँ:```bash
go test ./... -count=1
go vet ./...
go run ./cmd/akca benchmark --strict
यह बेंचमार्क अपने देखे गए कॉर्पस को मापता है। कार्यान्वयन विवरण और सत्यापन सीमाओं के लिए, आर्किटेक्चर गाइड और सत्यापन ऑडिट पढ़ें।
योगदान का स्वागत है। पुल रिक्वेस्ट खोलने से पहले CONTRIBUTING.md और आचार संहिता पढ़ें। AKCA में कमज़ोरियों की रिपोर्ट SECURITY.md के माध्यम से करें।
Apache License 2.0 · कॉपीराइट 2026 AKHA Security contributors।