Web API Pentesting
Reading time: 7 minutes
tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:
HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
API Pentesting मेथोडोलॉजी सारांश
APIs की pentesting में कमजोरियों का पता लगाने के लिए एक संरचित अप्रोच शामिल है। यह गाइड एक व्यापक मेथोडोलॉजी को समेटता है, जो व्यावहारिक तकनीकों और टूल्स पर जोर देता है।
API प्रकारों को समझना
- SOAP/XML Web Services: WSDL फॉर्मेट डॉक्यूमेंटेशन के लिए उपयोग होता है, आमतौर पर
?wsdlpaths पर मिलता है। टूल्स जैसे SOAPUI और WSDLer (Burp Suite Extension) parsing और requests generate करने में सहायक हैं। Example documentation is accessible at DNE Online. - REST APIs (JSON): डॉक्यूमेंटेशन अक्सर WADL फाइलों में होता है, फिर भी ऐसे टूल्स जैसे Swagger UI interaction के लिए एक अधिक user-friendly interface प्रदान करते हैं। Postman example requests बनाने और manage करने के लिए उपयोगी टूल है।
- GraphQL: APIs के लिए एक query language है जो आपके API के डेटा का एक पूरा और समझने योग्य वर्णन देती है।
Practice Labs
- VAmPI: एक जानबूझकर कमजोर API है जो hands-on प्रैक्टिस के लिए है, और OWASP top 10 API vulnerabilities को कवर करता है।
API Pentesting के लिए प्रभावी ट्रिक्स
- SOAP/XML Vulnerabilities: XXE vulnerabilities का परीक्षण करें, हालांकि DTD declarations आम तौर पर प्रतिबंधित होते हैं। अगर XML वैध रहता है तो CDATA tags payload insertion की अनुमति दे सकते हैं।
- Privilege Escalation: विभिन्न privilege levels के साथ endpoints को टेस्ट करें ताकि unauthorized access की संभावनाओं का पता चल सके।
- CORS Misconfigurations: CORS सेटिंग्स की जाँच करें ताकि authenticated sessions से होने वाले CSRF attacks के माध्यम से संभावित exploitability का पता चल सके।
- Endpoint Discovery: छिपे हुए endpoints खोजने के लिए API patterns का उपयोग करें। fuzzers जैसे टूल इस प्रक्रिया को automate कर सकते हैं।
- Parameter Tampering: requests में parameters जोड़कर या बदलकर unauthorized data या functionalities तक पहुँचने का प्रयोग करें।
- HTTP Method Testing: अनपेक्षित व्यवहार या सूचना disclosures खोजने के लिए request methods (GET, POST, PUT, DELETE, PATCH) बदलकर टेस्ट करें।
- Content-Type Manipulation: parsing issues या vulnerabilities की जांच के लिए अलग-अलग content types (x-www-form-urlencoded, application/xml, application/json) के बीच switch करें।
- Advanced Parameter Techniques: JSON payloads में अनपेक्षित data types के साथ टेस्ट करें या XXE injections के लिए XML data के साथ प्रयोग करें। व्यापक परीक्षण के लिए parameter pollution और wildcard characters भी आज़माएँ।
- Version Testing: पुराने API versions attacks के लिए अधिक susceptible हो सकते हैं। हमेशा कई API versions की जाँच और परीक्षण करें।
Authorization & Business Logic (AuthN != AuthZ) — tRPC/Zod protectedProcedure pitfalls
आधुनिक TypeScript स्टैक्स आमतौर पर input validation के लिए tRPC और Zod का उपयोग करते हैं। tRPC में, protectedProcedure आम तौर पर यह सुनिश्चित करता है कि request के पास एक valid session हो (authentication), लेकिन यह संकेत नहीं देता कि caller के पास सही role/permissions (authorization) हैं। अगर संवेदनशील procedures सिर्फ protectedProcedure से gated हों तो यह mismatch Broken Function Level Authorization/BOLA का कारण बनता है।
- Threat model: अगर role checks मौजूद नहीं हैं तो कोई भी low-privileged authenticated user admin-grade procedures को कॉल कर सकता है (उदा., background migrations, feature flags, tenant-wide maintenance, job control)।
- Black-box signal:
POST /api/trpc/<router>.<procedure>endpoints जो basic accounts के लिए सफल होते हैं जबकि उन्हें admin-only होना चाहिए। Self-serve signups exploitability को काफी बढ़ा देते हैं। - Typical tRPC route shape (v10+): JSON body आमतौर पर
{"input": {...}}के अंदर wrapped होती है।
Example vulnerable pattern (no role/permission gate):
// The endpoint for retrying a migration job
// This checks for a valid session (authentication)
retry: protectedProcedure
// but not for an admin role (authorization).
.input(z.object({ name: z.string() }))
.mutation(async ({ input, ctx }) => {
// Logic to restart a sensitive migration
}),
व्यावहारिक एक्सप्लॉइटेशन (black-box)
- एक सामान्य अकाउंट रजिस्टर करें और प्रमाणीकृत सत्र प्राप्त करें (cookies/headers).
- “list”/“all”/“status” प्रक्रियाओं के माध्यम से बैकग्राउंड जॉब्स या अन्य संवेदनशील संसाधनों को सूचीबद्ध करें।
curl -s -X POST 'https://<tenant>/api/trpc/backgroundMigrations.all' \
-H 'Content-Type: application/json' \
-b '<AUTH_COOKIES>' \
--data '{"input":{}}'
- किसी जॉब को पुनः आरंभ करने जैसी विशेषाधिकार प्राप्त क्रियाओं को निष्पादित करें:
curl -s -X POST 'https://<tenant>/api/trpc/backgroundMigrations.retry' \
-H 'Content-Type: application/json' \
-b '<AUTH_COOKIES>' \
--data '{"input":{"name":"<migration_name>"}}'
Impact to assess
- non-idempotent restarts के कारण डेटा करप्शन: migrations/workers को एक साथ चलाने पर race conditions और असंगत आंशिक अवस्थाएँ बन सकती हैं (silent data loss, broken analytics)।
- DoS via worker/DB starvation: बार-बार भारी jobs ट्रिगर करने से worker pools और database connections समाप्त हो सकते हैं, जिससे tenant-wide outages हो सकते हैं।
API Pentesting के लिए उपकरण और संसाधन
- kiterunner: API endpoints खोजने के लिए उत्कृष्ट। इसे target APIs के खिलाफ paths और parameters को scan और brute force करने के लिए उपयोग करें।
kr scan https://domain.com/api/ -w routes-large.kite -x 20
kr scan https://domain.com/api/ -A=apiroutes-220828 -x 20
kr brute https://domain.com/api/ -A=raft-large-words -x 20 -d=0
kr brute https://domain.com/api/ -w /tmp/lang-english.txt -x 20 -d=0
- https://github.com/BishopFox/sj: sj एक command line tool है जो exposed Swagger/OpenAPI definition files के auditing में मदद करने के लिए बनाया गया है; यह संबंधित API endpoints को weak authentication के लिए चेक करता है। यह manual vulnerability testing के लिए command templates भी प्रदान करता है।
- Additional tools like automatic-api-attack-tool, Astra, and restler-fuzzer API security testing के लिए tailored कार्यक्षमताएँ प्रदान करते हैं, जो attack simulation, fuzzing और vulnerability scanning तक फैली होती हैं।
- Cherrybomb: यह एक API security tool है जो OAS file के आधार पर आपके API का audit करता है (the tool written in rust).
सीखने और अभ्यास के संसाधन
- OWASP API Security Top 10: सामान्य API कमजोरियों को समझने के लिए अनिवार्य पढ़ाई (OWASP Top 10).
- API Security Checklist: APIs को secure करने के लिए एक व्यापक checklist (GitHub link).
- Logger++ Filters: API कमजोरियों की hunting के लिए, Logger++ उपयोगी filters प्रदान करता है (GitHub link).
- API Endpoints List: testing के उद्देश्य से संभावित API endpoints की curated सूची (GitHub gist).
संदर्भ
- https://github.com/Cyber-Guy1/API-SecurityEmpire
- How An Authorization Flaw Reveals A Common Security Blind Spot: CVE-2025-59305 Case Study
tip
AWS हैकिंग सीखें और अभ्यास करें:
HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें:
HackTricks Training GCP Red Team Expert (GRTE)
Azure हैकिंग सीखें और अभ्यास करें:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें और HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में PRs सबमिट करें।
HackTricks