प्रत्येक अनुप्रयोग VM पर nginx रिवर्स प्रॉक्सी के माध्यम से पहुँच योग्य nginx अपस्ट्रीम पूल के पीछे 4 लोड-बैलेंस्ड Docker कंटेनर के रूप में चलता है। Sticky sessions सुनिश्चित करते हैं कि स्टेटफुल अनुप्रयोग (Juice Shop, DVWA, VAmPI, CSD Demo) निरंतर रूट होते रहें। सभी अनुप्रयोग जानबूझकर असुरक्षित हैं और सुरक्षा परीक्षण के लिए डिज़ाइन किए गए हैं।
नीचे दिए गए सभी उदाहरणों में <ORIGIN> को http://<PUBLIC_IP> से बदलें। Terraform के माध्यम से तैनात करने के बाद, terraform output -raw public_ip से IP प्राप्त करें।
पथ अनुप्रयोग HTTP विधि अपेक्षित प्रतिक्रिया /लैंडिंग पृष्ठ GET 200 HTML सभी ऐप्स के लिंक सहित /healthस्वास्थ्य जाँच GET 200 JSON {"status":"healthy","component":"origin-server",...} /juice-shop/Juice Shop GET 200 HTML (Angular SPA, ~75 KB) /juice-shop/rest/products/search?q=Juice Shop API GET 200 JSON {"status":"success","data":[...]} (36 उत्पाद) /dvwa/DVWA GET 302 /dvwa/login.php पर पुनर्निर्देशन /dvwa/login.phpDVWA लॉगिन GET 200 HTML लॉगिन फ़ॉर्म /dvwa/setup.phpDVWA सेटअप GET 200 HTML (प्रथम-रन डेटाबेस इनिट) /vampi/VAmPI GET 200 HTML (API दस्तावेज़) /vampi/users/v1VAmPI API GET 200 JSON {"users":[...]} /vampi/users/v1/registerVAmPI API POST 200 JSON {"status":"success",...} /vampi/users/v1/loginVAmPI API POST 200 JSON {"auth_token":"...","status":"success"} /httpbin/gethttpbin GET 200 JSON अनुरोध विवरण सहित /httpbin/posthttpbin POST 200 JSON पोस्ट किए गए डेटा सहित /httpbin/headershttpbin GET 200 JSON {"headers":{...}} /httpbin/status/:codehttpbin GET निर्दिष्ट HTTP स्टेटस कोड लौटाता है /whoami/whoami GET 200 सादा पाठ जिसमें होस्टनाम, IP, सभी हेडर हैं /csd-demo/CSD Demo GET 200 HTML चेकआउट फ़ॉर्म और आक्रमण पैनल सहित /csd-demo/dashboardCSD आक्रमणकर्ता दृश्य GET 200 HTML एक्सफ़िल्ट्रेटेड डेटा दिखाता है /csd-demo/healthCSD स्वास्थ्य GET 200 JSON {"status":"healthy","component":"csd-demo",...} /csd-demo/exfil/logCSD एक्सफ़िल लॉग GET 200 JSON कैप्चर किए गए डेटा की सरणी /dvga/DVGA GraphiQL GET 200 HTML (GraphiQL IDE) /dvga/graphqlDVGA GraphQL API POST 200 JSON GraphQL प्रतिक्रिया /restaurant/RESTaurant GET 200 (दस्तावेज़ों पर पुनर्निर्देशित) /restaurant/docsRESTaurant Swagger GET 200 HTML (FastAPI Swagger UI) /restaurant/openapi.jsonRESTaurant OpenAPI GET 200 JSON OpenAPI विनिर्देश http://<PUBLIC_IP>:8888crAPI GET 200 HTML (SPA) http://<PUBLIC_IP>:8888/identity/api/auth/signupcrAPI साइनअप POST 200 JSON http://<PUBLIC_IP>:8888/identity/api/auth/logincrAPI लॉगिन POST 200 JSON {"token":"..."}
पथ /juice-shop/इमेज bkimminich/juice-shop:latestइंस्टेंस 4 (पोर्ट 3001-3004), hash $cookie_token के माध्यम से sticky, प्रॉक्सी कैश (60 s TTL) संसाधन प्रति इंस्टेंस 2 CPU / 1 GiB RAM फ्रेमवर्क Node.js / Angular प्रोजेक्ट owasp.org/www-project-juice-shop
OWASP Juice Shop सबसे आधुनिक और सक्रिय रूप से अनुरक्षित असुरक्षित वेब अनुप्रयोग है। यह एक वास्तविक ई-कॉमर्स अनुप्रयोग में 100+ चुनौतियों के साथ संपूर्ण OWASP Top 10 को कवर करता है।
परिदृश्य श्रेणी आक्रमण वेक्टर SQL Injection लॉगिन बाईपास वेब ऐप फ़ायरवॉल (WAF) लॉगिन ईमेल फ़ील्ड में ' OR 1=1-- Reflected XSS वेब ऐप फ़ायरवॉल (WAF), क्लाइंट-साइड डिफेंस खोज पैरामीटर के माध्यम से स्क्रिप्ट इंजेक्शन DOM-based XSS क्लाइंट-साइड डिफेंस URL फ्रैगमेंट में पेलोड टूटी हुई प्रमाणीकरण वेब ऐप फ़ायरवॉल (WAF) ब्रूट फोर्स लॉगिन, JWT हेरफेर API दुरुपयोग API सुरक्षा /api/ एंडपॉइंट तक अनधिकृत पहुँचसंवेदनशील डेटा उजागर होना API सुरक्षा बिना प्राधिकरण के उपयोगकर्ता डेटा तक पहुँच CSRF वेब ऐप फ़ायरवॉल (WAF) प्रोफ़ाइल परिवर्तनों पर क्रॉस-साइट रिक्वेस्ट फ़ॉर्जरी
curl -s " http://<PUBLIC_IP>/juice-shop/ " -o /dev/null -w " %{http_code} "
पथ /dvwa/इमेज कस्टम dvwa-fpm:latest (php-fpm + nginx, ghcr.io/digininja/dvwa:latest से निर्मित) इंस्टेंस 4 (पोर्ट 8101-8104), hash $cookie_PHPSESSID के माध्यम से sticky संसाधन प्रति इंस्टेंस 0.5 CPU / 256 MiB RAM डेटाबेस साझा MariaDB 10.11 (dvwa-db कंटेनर, 1 CPU / 768 MiB) फ्रेमवर्क PHP 8 / php-fpm / MariaDB क्रेडेंशियल admin / password
DVWA वेब ऐप फ़ायरवॉल (WAF) परीक्षण के लिए उद्योग मानक है। इसमें समायोज्य सुरक्षा स्तर (Low, Medium, High, Impossible) हैं जो क्रमिक रूप से इनपुट सत्यापन और आउटपुट एन्कोडिंग जोड़ते हैं।
परिदृश्य श्रेणी सुरक्षा स्तर SQL Injection वेब ऐप फ़ायरवॉल (WAF) Low: सरल ' OR 1=1#, High: ब्लाइंड SQLi Command Injection वेब ऐप फ़ायरवॉल (WAF) Low: ; ls, High: फ़िल्टर किए गए वर्ण File Inclusion वेब ऐप फ़ायरवॉल (WAF) Low: सीधा पाथ ट्रैवर्सल, High: सैनिटाइज़ किया गया XSS (Reflected) वेब ऐप फ़ायरवॉल (WAF), क्लाइंट-साइड डिफेंस Low: बेसिक <script>, High: एन्कोडेड बाईपास XSS (Stored) वेब ऐप फ़ायरवॉल (WAF), क्लाइंट-साइड डिफेंस Low: गेस्टबुक में स्थायी स्क्रिप्ट File Upload वेब ऐप फ़ायरवॉल (WAF) Low: PHP शेल अपलोड, High: एक्सटेंशन फ़िल्टरिंग Brute Force Bot मानक रक्षा स्वचालित लॉगिन प्रयास
लॉग इन करने के बाद /dvwa/security.php पर सुरक्षा स्तर सेट करें:
Low — कोई इनपुट सत्यापन नहीं। प्रत्येक आक्रमण काम करता है। वेब ऐप फ़ायरवॉल (WAF) सिग्नेचर प्रदर्शन के लिए उपयुक्त।
Medium — बेसिक फ़िल्टरिंग। कुछ आक्रमणों के लिए एन्कोडिंग या बाईपास तकनीकें आवश्यक हैं।
High — मज़बूत फ़िल्टरिंग। केवल उन्नत तकनीकें सफल होती हैं। वेब ऐप फ़ायरवॉल (WAF) की सीमाएँ दिखाने के लिए उपयुक्त।
Impossible — पूरी तरह सुरक्षित कार्यान्वयन। उचित रक्षात्मक कोडिंग को प्रदर्शित करता है।
DVWA को पहले तैनाती के बाद एकमुश्त डेटाबेस सेटअप की आवश्यकता होती है:
http://<PUBLIC_IP>/dvwa/setup.php पर जाएँ
Create / Reset Database पर क्लिक करें
admin / password से लॉग इन करें
पथ /vampi/इमेज erev0s/vampi:latest gunicorn entrypoint (4 workers) के साथइंस्टेंस 4 (पोर्ट 5101-5104), ip_hash के माध्यम से sticky (प्रति इंस्टेंस SQLite) संसाधन प्रति इंस्टेंस 0.5 CPU / 512 MiB RAM फ्रेमवर्क Python / Flask / gunicorn प्रोजेक्ट github.com/erev0s/VAmPI
VAmPI OWASP API Security Top 10 के परीक्षण के लिए विशेष रूप से निर्मित है। यह जानबूझकर कमज़ोरियों के साथ एक वास्तविक REST API प्रदान करता है। प्रत्येक इंस्टेंस 4 workers के साथ gunicorn और अपना SQLite डेटाबेस चलाता है। ip_hash sticky session सुनिश्चित करता है कि एक ही क्लाइंट IP से पंजीकरण और लॉगिन हमेशा एक ही इंस्टेंस पर जाएँ।
परिदृश्य OWASP API Top 10 विधि Broken Object Level Authorization (BOLA) API1 ID में हेरफेर करके अन्य उपयोगकर्ताओं का डेटा एक्सेस करना टूटी हुई प्रमाणीकरण API2 कमज़ोर टोकन हैंडलिंग, कोई रेट लिमिटिंग नहीं अत्यधिक डेटा उजागर होना API3 API क्लाइंट की ज़रूरत से अधिक डेटा लौटाता है Mass Assignment API6 अनपेक्षित पैरामीटर के माध्यम से एडमिन फ़ील्ड में बदलाव SQL Injection API8 API पैरामीटर के माध्यम से इंजेक्शन अनुचित संपत्ति प्रबंधन API9 अनदस्तावेज़ीकृत API एंडपॉइंट
# नया उपयोगकर्ता पंजीकृत करें
curl -X POST " http://<PUBLIC_IP>/vampi/users/v1/register " \
-H " Content-Type: application/json " \
-d ' {"username":"test","password":"test123","email":"test@test.com"} '
curl -X POST " http://<PUBLIC_IP>/vampi/users/v1/login " \
-H " Content-Type: application/json " \
-d ' {"username":"test","password":"test123"} '
# उपयोगकर्ताओं की सूची (अत्यधिक डेटा उजागर होना)
curl " http://<PUBLIC_IP>/vampi/users/v1 "
पथ /httpbin/इमेज kennethreitz/httpbin:latest gunicorn CMD ओवरराइड (-w 4 -k gevent --timeout 30) के साथइंस्टेंस 4 (पोर्ट 8201-8204), राउंड-रॉबिन (स्टेटलेस) संसाधन प्रति इंस्टेंस 0.5 CPU / 256 MiB RAM फ्रेमवर्क Python / Flask / gunicorn + gevent प्रोजेक्ट httpbin.org
httpbin एक सरल HTTP अनुरोध/प्रतिक्रिया सेवा है जो बेसिक API डेमो, अनुरोध हेडर परीक्षण और प्रॉक्सी व्यवहार की जाँच के लिए उपयोगी है।
एंडपॉइंट उद्देश्य /httpbin/getGET अनुरोध डेटा (हेडर, args, origin) लौटाता है /httpbin/postPOST अनुरोध डेटा (body, form, JSON) लौटाता है /httpbin/headersअनुरोध हेडर लौटाता है /httpbin/ipऑरिजिन IP लौटाता है /httpbin/user-agentUser-Agent हेडर लौटाता है /httpbin/status/:codeनिर्दिष्ट HTTP स्टेटस कोड लौटाता है /httpbin/delay/:secondsN सेकंड के लिए प्रतिक्रिया में देरी करता है /httpbin/anythingअनुरोध में पास की गई कोई भी चीज़ लौटाता है
# देखें कि ऑरिजिन कौन से हेडर देखता है (F5 XC हेडर इंजेक्शन की जाँच के लिए उपयोगी)
curl -s " http://<PUBLIC_IP>/httpbin/headers " | jq .
# एक विशिष्ट HTTP स्टेटस कोड का परीक्षण करें
curl -s -o /dev/null -w " %{http_code} " " http://<PUBLIC_IP>/httpbin/status/403 "
पथ /whoami/इमेज traefik/whoami:latestइंस्टेंस 4 (पोर्ट 8082-8085), राउंड-रॉबिन (स्टेटलेस) संसाधन प्रति इंस्टेंस 0.25 CPU / 64 MiB RAM फ्रेमवर्क Go प्रोजेक्ट github.com/traefik/whoami
whoami Traefik का हल्का अनुरोध इको सर्वर है। यह आने वाले HTTP अनुरोध का प्रत्येक विवरण प्रदर्शित करता है जैसा ऑरिजिन देखता है — होस्टनाम, IP पते, सभी हेडर, विधि और URL। यह F5 XC द्वारा सही हेडर इंजेक्ट किए जाने की जाँच के समय सबसे महत्वपूर्ण निदान उपकरण है।
उपयोग का मामला क्या देखना है F5 XC हेडर इंजेक्शन की जाँच X-Forwarded-For, True-Client-IP, X-Volterra-* हेडरक्लाइंट IP दृश्यता की पुष्टि X-Real-IP बनाम RemoteAddrवेब ऐप फ़ायरवॉल (WAF) फ़ॉल्स पॉज़िटिव डीबग करें F5 XC से पहले/बाद अनुरोध हेडर की तुलना करें Bot Defense टैगिंग की जाँच X-Volterra-Bot-Type, X-Volterra-Bot-Verified हेडरTLS टर्मिनेशन की जाँच X-Forwarded-Proto दिखाता है https जब TLS F5 XC पर समाप्त होता है
# बेसिक अनुरोध -- देखें कि ऑरिजिन क्या प्राप्त करता है
curl " http://<PUBLIC_IP>/whoami/ "
# F5 XC के माध्यम से अनुरोध अनुकरण करें (इंजेक्टेड हेडर के साथ)
curl " http://<PUBLIC_IP>/whoami/ " \
-H " X-Forwarded-For: 203.0.113.50 " \
-H " True-Client-IP: 203.0.113.50 " \
-H " X-Forwarded-Proto: https "
उदाहरण आउटपुट:
RemoteAddr: 172.17.0.1:55118
True-Client-Ip: 203.0.113.50
X-Forwarded-For: 203.0.113.50, 10.0.0.1
X-Real-Ip: 104.219.105.84
DVGA GraphQL-विशिष्ट कमज़ोरियों के परीक्षण के लिए विशेष रूप से निर्मित है। यह /dvga/ पर इंटरेक्टिव क्वेरी अन्वेषण के लिए GraphiQL IDE और /dvga/graphql पर GraphQL API एंडपॉइंट प्रदान करता है। प्रत्येक इंस्टेंस अपना SQLite डेटाबेस उपयोग करता है, इसलिए ip_hash sticky sessions निरंतर स्थिति सुनिश्चित करते हैं।
परिदृश्य श्रेणी आक्रमण वेक्टर GraphQL Injection API सुरक्षा स्ट्रिंग इंटरपोलेशन के माध्यम से दुर्भावनापूर्ण क्वेरी सेवा अस्वीकृति API सुरक्षा गहरी नेस्टेड क्वेरी, बैच क्वेरी, संसाधन थकान प्राधिकरण बाईपास API सुरक्षा GraphQL के माध्यम से अनधिकृत डेटा तक पहुँच सूचना प्रकटीकरण API सुरक्षा स्कीमा विवरण उजागर करने वाली इंट्रोस्पेक्शन क्वेरी बैचिंग आक्रमण API सुरक्षा एकल अनुरोध में कई ऑपरेशन
# GraphiQL UI (इंटरेक्टिव IDE)
curl -sf " http://<PUBLIC_IP>/dvga/ " -o /dev/null -w " %{http_code} "
# इंट्रोस्पेक्शन क्वेरी -- पूर्ण स्कीमा की गणना करें
curl -s " http://<PUBLIC_IP>/dvga/graphql " \
-H " Content-Type: application/json " \
-d ' {"query":"{ __schema { types { name fields { name } } } }"} '
# पेस्ट सूचीबद्ध करें (उदाहरण क्वेरी)
curl -s " http://<PUBLIC_IP>/dvga/graphql " \
-H " Content-Type: application/json " \
-d ' {"query":"{ pastes { title content } }"} '
# एक पेस्ट बनाएँ (म्यूटेशन)
curl -s " http://<PUBLIC_IP>/dvga/graphql " \
-H " Content-Type: application/json " \
-d ' {"query":"mutation { createPaste(title:\"test\", content:\"hello\", public:true) { paste { title } } }"} '
पथ /restaurant/इमेज theowni/Damn-Vulnerable-RESTaurant-API-Game से कस्टम बिल्डइंस्टेंस 4 (पोर्ट 8301-8304), राउंड-रॉबिन (साझा PostgreSQL) संसाधन प्रति इंस्टेंस 0.5 CPU / 256 MiB RAM डेटाबेस साझा PostgreSQL 15.4 (restaurant-db कंटेनर, 0.5 CPU / 512 MiB) फ्रेमवर्क Python / FastAPI / PostgreSQL क्रेडेंशियल admin / password (PostgreSQL)प्रोजेक्ट github.com/theowni/Damn-Vulnerable-RESTaurant-API-Game
RESTaurant OWASP API Security Top 10 2023 को कवर करने वाला एक गेमीफाइड असुरक्षित REST API है। यह /restaurant/docs पर स्वचालित Swagger UI दस्तावेज़ीकरण के साथ FastAPI का उपयोग करता है। सभी 4 इंस्टेंस एकल PostgreSQL डेटाबेस साझा करते हैं, इसलिए राउंड-रॉबिन लोड बैलेंसिंग sticky sessions के बिना काम करती है।
परिदृश्य OWASP API Top 10 2023 विधि Broken Object Level Authorization (BOLA) API1 ID में हेरफेर करके अन्य उपयोगकर्ताओं के ऑर्डर एक्सेस करना टूटी हुई प्रमाणीकरण API2 कमज़ोर टोकन हैंडलिंग, क्रेडेंशियल स्टफिंग टूटा हुआ ऑब्जेक्ट प्रॉपर्टी लेवल प्राधिकरण API3 उपयोगकर्ता प्रोफ़ाइल फ़ील्ड पर Mass Assignment अप्रतिबंधित संसाधन खपत API4 एंडपॉइंट पर कोई रेट लिमिटिंग नहीं Broken Function Level Authorization (BFLA) API5 नियमित उपयोगकर्ता के रूप में एडमिन एंडपॉइंट एक्सेस करना Server Side Request Forgery (SSRF) API7 सर्वर-साइड URL अनुरोधों में हेरफेर सुरक्षा गलत कॉन्फ़िगरेशन API8 विस्तृत त्रुटि संदेश, डिफ़ॉल्ट क्रेडेंशियल
curl -sf " http://<PUBLIC_IP>/restaurant/docs " -o /dev/null -w " %{http_code} "
curl -s " http://<PUBLIC_IP>/restaurant/openapi.json " | jq .info
# BOLA -- प्रमाणीकरण के बाद अन्य उपयोगकर्ता का ऑर्डर एक्सेस करें
curl -s " http://<PUBLIC_IP>/restaurant/orders/1 " \
-H " Authorization: Bearer <token> "
# BFLA -- नियमित उपयोगकर्ता के रूप में एडमिन कार्रवाई का प्रयास
curl -s -X POST " http://<PUBLIC_IP>/restaurant/admin/users " \
-H " Authorization: Bearer <user_token> " \
-H " Content-Type: application/json "
पोर्ट 8888 (समर्पित — पाथ-प्रीफिक्स्ड नहीं)इमेज crapi/crapi-web, crapi/crapi-identity, crapi/crapi-community, crapi/crapi-workshop, PostgreSQL, MongoDB, MailHogइंस्टेंस 7 माइक्रोसर्विसेज़ (प्रत्येक एकल इंस्टेंस) संसाधन कुल ~3.0 CPU / ~2.0 GiB RAM फ्रेमवर्क React SPA + Java/Go/Python माइक्रोसर्विसेज़ प्रोजेक्ट github.com/OWASP/crAPI
crAPI API सुरक्षा परीक्षण के लिए OWASP का प्रमुख प्रोजेक्ट है। यह एक समर्पित पोर्ट (8888) पर 7 माइक्रोसर्विसेज़ के रूप में चलता है क्योंकि React SPA अपने API पथों को हार्डकोड करता है और पाथ प्रीफिक्स के पीछे सर्व नहीं किया जा सकता। NSG पोर्ट 8888 पर इनबाउंड ट्रैफ़िक की अनुमति देता है।
MailHog crAPI द्वारा भेजे गए सभी ईमेल (खाता सत्यापन, पासवर्ड रीसेट) कैप्चर करता है। पोर्ट 18025 पर SSH टनल के माध्यम से MailHog तक पहुँचें।
श्रेणी कमज़ोरियाँ BOLA (Broken Object Level Authorization) अन्य उपयोगकर्ताओं के वाहन, ऑर्डर और रिपोर्ट एक्सेस करना BFLA (Broken Function Level Authorization) एडमिन में एस्केलेट करना, प्रतिबंधित एंडपॉइंट एक्सेस करना Mass Assignment API के माध्यम से संरक्षित फ़ील्ड (भूमिका, शेष राशि) में बदलाव SSRF (Server Side Request Forgery) सर्वर-साइड URL फेचिंग में हेरफेर JWT हेरफेर विशेषाधिकार वृद्धि के लिए JWT टोकन जाली बनाना या संशोधित करना NoSQL Injection MongoDB-समर्थित एंडपॉइंट में क्वेरी इंजेक्ट करना अत्यधिक डेटा उजागर होना API संवेदनशील उपयोगकर्ता डेटा लौटाता है
# crAPI चल रहा है इसकी जाँच करें
curl -sf " http://<PUBLIC_IP>:8888 " -o /dev/null -w " %{http_code} "
# नया उपयोगकर्ता साइन अप करें
curl -s -X POST " http://<PUBLIC_IP>:8888/identity/api/auth/signup " \
-H " Content-Type: application/json " \
-d ' {"name":"Test User","email":"test@example.com","number":"1234567890","password":"Test1234!"} '
curl -s -X POST " http://<PUBLIC_IP>:8888/identity/api/auth/login " \
-H " Content-Type: application/json " \
-d ' {"email":"test@example.com","password":"Test1234!"} '
# MailHog तक पहुँचें (ईमेल सत्यापन के लिए SSH टनल के माध्यम से)
# ssh -L 18025:localhost:18025 azureuser@<PUBLIC_IP>
# फिर अपने ब्राउज़र में http://localhost:18025 खोलें
Port 8888 -> crapi-web (React SPA + nginx)
-> crapi-identity (Java, user auth, JWT)
-> crapi-community (Go, forums, posts)
-> crapi-workshop (Python, vehicle service)
-> crapi-postgres (PostgreSQL)
-> crapi-mailhog (email capture, port 18025)
डेमो उपयोग का मामला प्राथमिक ऐप द्वितीयक ऐप वेब ऐप फ़ायरवॉल (WAF) — SQL Injection DVWA Juice Shop वेब ऐप फ़ायरवॉल (WAF) — XSS DVWA Juice Shop वेब ऐप फ़ायरवॉल (WAF) — Command Injection DVWA — API सुरक्षा — BOLA VAmPI — API सुरक्षा — प्रमाणीकरण बाईपास VAmPI Juice Shop API सुरक्षा — डेटा उजागर होना VAmPI httpbin Bot मानक रक्षा — Brute force DVWA Juice Shop Bot मानक रक्षा — Scraping Juice Shop — क्लाइंट-साइड डिफेंस — DOM XSS Juice Shop — क्लाइंट-साइड डिफेंस — Stored XSS DVWA Juice Shop क्लाइंट-साइड डिफेंस — Card Skimmer CSD Demo — क्लाइंट-साइड डिफेंस — Formjacker CSD Demo — क्लाइंट-साइड डिफेंस — Keylogger CSD Demo — क्लाइंट-साइड डिफेंस — Cryptominer CSD Demo — क्लाइंट-साइड डिफेंस — DOM Hijack CSD Demo — API सुरक्षा — GraphQL injection DVGA — API सुरक्षा — GraphQL DoS DVGA — API सुरक्षा — OWASP API Top 10 2023 RESTaurant crAPI API सुरक्षा — BFLA RESTaurant crAPI API सुरक्षा — Mass assignment crAPI RESTaurant API सुरक्षा — SSRF crAPI RESTaurant API सुरक्षा — JWT हेरफेर crAPI — API सुरक्षा — NoSQL injection crAPI — बेसिक कनेक्टिविटी परीक्षण httpbin — अनुरोध निदान whoami httpbin हेडर इंजेक्शन की जाँच whoami —