Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

फ़ीडसंपर्कगोपनीयता© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
alibi — अपनी attack surface के दृश्यों का क्रॉस-चेक करें और वे endpoints खोजें जो एक-दूसरे की पुष्टि नहीं कर सकते। | Kitploit
उपकरण/GitHubGitHub/owasp-noir/alibi
रक्षात्मक उपकरणटोहीस्थैतिक विश्लेषणभेद्यता विश्लेषणकोड विश्लेषणकॉन्फ़िगरेशन ऑडिटिंगजानकारी एकत्र करनावेब सुरक्षाDevSecOpsAPI सुरक्षा
GitHubowasp-noir/alibi
11751 दिन पहलेअभी तक समीक्षित नहीं

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →

alibi

अपनी attack surface के दृश्यों का क्रॉस-चेक करें और वे endpoints खोजें जो एक-दूसरे की पुष्टि नहीं कर सकते।

रिपॉजिटरी देखें
साझा करें

alibi

अपने अटैक सरफेस के दृश्यों का क्रॉस-चेक करें और वे एंडपॉइंट्स खोजें जो एक-दूसरे की पुष्टि नहीं कर सकते।

एक एंडपॉइंट को अपना हिसाब दे पाना चाहिए। यह कोड में है, तो एक कॉन्ट्रैक्ट को इसका वर्णन करना चाहिए। यह कॉन्ट्रैक्ट में है, तो किसी चीज़ को इसे इम्प्लीमेंट करना चाहिए। यह असली ट्रैफ़िक लेता है, तो बेहतर होगा कि यह कहीं मौजूद हो। जब एक दृश्य किसी एंडपॉइंट के बारे में जानता है और बाकी नहीं, तो वही अंतर ही निष्कर्ष है।

alibi OWASP noir चलाता है, उसका JSON पढ़ता है, और दृश्यों की एक-दूसरे से तुलना करता है।

यह एक अलग टूल क्यों है

Noir पहले से ही एक ही सरफेस के पाँच स्वतंत्र दृश्य पढ़ता है:

दृश्यकहाँ से पढ़ा जाता है
code33 भाषाओं में 200 से अधिक एनालाइज़र
docOpenAPI, RAML, WSDL, GraphQL SDL, AsyncAPI, gRPC, Smithy, TypeSpec, OData, OpenRPC
trafficHAR, mitmproxy, Burp, Caido, ZAP, Postman, Insomnia, Bruno, .http
gatewaynginx, Apache, Envoy, Kong, Traefik, APISIX, Caddy, Istio, Kubernetes Ingress और Gateway API
infraTerraform, CloudFormation, CDK, Serverless, Vercel, Netlify, Wrangler, Azure Functions, Kamal

जो यह नहीं करता, वह है उनकी तुलना करना। यही पूरा काम यहाँ है, और इसके लिए noir में कोई बदलाव नहीं चाहिए — alibi इसे प्रति दृश्य एक बार चलाता है और परिणामों को जोड़ता है।

प्रति-दृश्य वाला हिस्सा मायने रखता है। Noir हर एनालाइज़र में (method, url) के आधार पर डीडुप्लिकेट करता है, इसलिए एक Flask रूट और एक OpenAPI पाथ जो एक जैसे लिखे गए हैं, एक ही एंडपॉइंट में समा जाते हैं जो एक ही टेक्नोलॉजी लिए होते हैं। यह एक डिस्कवरी टूल के लिए सही है — यह एक एंडपॉइंट है — लेकिन यह उस पुष्टि को मिटा देता है जिसे मापने के लिए यह टूल बना है, और इसे सबसे बुरी दिशा में मिटाता है: दो दृश्य जितना बेहतर सहमत होते हैं, उतने ही अधिक गायब हो जाते हैं। Casdoor 372 कोड एंडपॉइंट्स और 9 डॉक्यूमेंटेड के रूप में स्कैन होता है; अकेले इसकी swagger/ डायरेक्टरी स्कैन करें तो स्पेसिफिकेशन में 235 हैं।

--only-techs डिटेक्टर पूल को सीमित करता है, इसलिए प्रति दृश्य एक स्कैन हर एक को पूरा रखता है। कौन सी टेक्नोलॉजी किस दृश्य के लिए बोलती है, यह views.yml है; कौन सी टेक्नोलॉजी मौजूद हैं, यह वही है जो noir list techs रिपोर्ट करता है।

alibi अपने आप किसी API फ़ॉर्मेट को पार्स नहीं करता। इसका एकमात्र इनपुट noir का JSON है।

इंस्टॉल

PATH पर noir 1.0.0 या नया चाहिए -- यही वह रिलीज़ है जिसमें noir list techs एक सबकमांड बना, और वही कैटलॉग हर टेक्नोलॉजी को एक दृश्य को सौंपता है। डेवलपमेंट मौजूदा noir रिलीज़ को ट्रैक करता है। पुराने बाइनरी को नाम लेकर अस्वीकार कर दिया जाता है, बजाय इसके कि उसे उसके पहले कैटलॉग रीड पर फेल होने के लिए छोड़ दिया जाए।

$ uv tool install noir-alibi     # or: pipx install noir-alibi
$ alibi scan ./my-service

उपयोग

$ alibi scan                                      # the working directory
$ alibi scan ./service ./contracts ./prod.har     # or wherever the views live

हर पाथ एक स्रोत है, जिसे प्रति दृश्य एक बार स्कैन किया जाता है। इसे जो भी आपके पास है उस पर इंगित करें — एक सोर्स ट्री, एक स्पेक डायरेक्टरी, एक अकेली कैप्चर फ़ाइल — और जो दृश्य आपके पास नहीं हैं वे रिपोर्ट को भरने के बजाय अपने नियम बंद कर देते हैं।

alibi  ·  1 source  ·  377 endpoints

  code 372   doc 235

  230 corroborated -- vouched for by more than one view

  19 endpoints nearly matched another view -- these may be matching failures, not real gaps

SHADOW  Shadow API -- Implemented, but no contract describes it
  134 findings  ·  4 critical, 57 high, 62 medium, 11 low

  critical POST    /api/upload-groups        router.go:87
           upload paths carry more consequence than reads
  critical POST    /api/upload-permissions   router.go:208
  ...
  ... and 122 more (SHADOW in full: -f json)

TWO SURFACES?
  The doc view is 97% under /api, and 37 of these findings are outside it.
  If that is a separate surface the contract never covered, narrow the scan:
    alibi scan <paths> --ignore '^/(?!api(/|$))'
  If it is the same surface left undocumented, they are the findings that matter most.

समूह बारह पर रुक जाते हैं — क्रम सबसे बुरे से पहले वाला है, इसलिए पूँछ सबसे कम जानकारीपूर्ण हिस्सा है, और -f json में यह पूरा होता है।

noir के लिए फ़्लैग एक खाली -- के बाद या --noir-arg के ज़रिए दिए जाते हैं। --exclude-path जैसे फ़िल्टर ठीक हैं; जो फ़्लैग JSON कॉन्ट्रैक्ट को बदल देंगे या alibi के प्रति-दृश्य स्कैन को समेट देंगे (--format, --diff-*, --only-techs, …) उन्हें exit status 2 के साथ अस्वीकार कर दिया जाता है।

CI में

- run: alibi scan . ./contracts -f sarif > alibi.sarif
- uses: github/codeql-action/upload-sarif@v3
  with: { sarif_file: alibi.sarif }

यह देखना कि हर दृश्य में क्या था

रिपोर्ट कहती है कि दृश्य असहमत हैं; --endpoints कहता है कि उनमें से हर एक में क्या था।

$ alibi scan ./repo -f json --endpoints

हर दृश्य को एक सूची मिलती है: कुंजी, किन दृश्यों ने इसकी पुष्टि की, इसके पीछे की टेक्नोलॉजी, फ़ाइलें, और नॉर्मलाइज़ेशन से पहले की स्पेलिंग — जहाँ भी दो पंक्तियों को मेल खाना चाहिए था और नहीं खाया, अंतर हमेशा वहीं होता है। यह बाकी पेलोड का तीन से चार गुना है, इसलिए यह डिफ़ॉल्ट के बजाय एक फ़्लैग है।

या सीधे गेट करें: alibi scan . ./contracts --fail-on high उस गंभीरता तक पहुँचने वाले निष्कर्ष पर non-zero के साथ बाहर निकलता है। जिस स्कैन को noir पूरी तरह नहीं पढ़ सका वह executionSuccessful: false रिपोर्ट करता है, इसलिए एक अपक्षयित रन साफ़ रन के रूप में पास नहीं होता।

एंडपॉइंट्स कैसे मैच होते हैं

Noir एक सामान्य सिंटैक्स गढ़ने के बजाय हर फ़्रेमवर्क का अपना रूट सिंटैक्स रखता है, इसलिए एक ही एंडपॉइंट कई तरह से लिखा हुआ आता है:

python_flask   /api/users/<int:user_id>
aiohttp        /users/{id}
java_spring    /api/catalog/{id}
oas3           /v1/pets/{petId}
rails          /posts/:id
nginx          /admin/.*

जो नियम इन्हें तुलनीय बनाता है: किसी पाथ पैरामीटर का नाम उसकी पहचान का हिस्सा नहीं है। {petId} और <int:user_id> एक ही स्लॉट का वर्णन करते हैं; केवल उसकी स्थिति और यह कि वह किसी / तक फैलता है या नहीं, मायने रखता है। नाम साक्ष्य के रूप में रखे और रिपोर्ट किए जाते हैं, लेकिन कुंजी तक कभी नहीं पहुँचते।

निष्कर्ष बताते हैं कि मैच कैसे बना:

ग्रेडअर्थ
G1स्पेलिंग पहले से ही सहमत थीं
G2पैरामीटर सिंटैक्स नॉर्मलाइज़ होने पर वे सहमत होते हैं
G0केवल एक दृश्य में है — कुछ भी मैच नहीं हुआ

इसे ईमानदार क्या रखता है

ऐसा टूल अपने पहले रन में सैकड़ों निष्कर्ष रिपोर्ट करके मर जाता है, या ऐसी प्रगति रिपोर्ट करके जो किसी ने की ही नहीं। छह चीज़ें इसका विरोध करती हैं:

दोनों दृश्यों के बिना नियम नहीं चलते। कहीं भी कॉन्ट्रैक्ट के बिना एक कोडबेस स्कैन करें तो हर एंडपॉइंट तकनीकी रूप से एक अनडॉक्यूमेंटेड शैडो API के योग्य हो जाता है। वे निष्कर्ष इसके अलावा कुछ नहीं कहते कि आपने कोई डॉक्यूमेंटेशन दिया ही नहीं, इसलिए कोई नियम तभी चलता है जब वह हर दृश्य जिसके बारे में वह तर्क करता है, वास्तव में स्कैन में था। रिपोर्ट उन नियमों के नाम बताती है जो बाहर बैठे।

नियर मिस को निष्कर्ष के रूप में नहीं, संदेह के रूप में रिपोर्ट किया जाता है। "कोड में है, डॉक्स में नहीं" और "दोनों में है, लेकिन alibi उन्हें मिला नहीं पाया" में कोई अंतर नहीं किया जा सकता। इसलिए जो एंडपॉइंट एक दृश्य में पड़ता है, उसे नियर मिस के लिए बाकी दृश्यों के विरुद्ध जाँचा जाता है — एक ही पाथ एक अलग वर्ब के साथ, या एक सेगमेंट का अंतर जहाँ एक तरफ़ पैरामीटर है और दूसरी तरफ़ लिटरल। नियर मिस वाले निष्कर्ष डिमोट किए जाते हैं और समीक्षा के लिए फ़्लैग किए जाते हैं। वह गिनती कुल के बगल में बैठती है, क्योंकि हर निष्कर्ष उतना ही भरोसेमंद है जितना वह छोटा है।

टूल डाउनलोड करें