Web API Pentesting
Reading time: 7 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Muhtasari wa Mbinu za API Pentesting
Pentesting APIs inahitaji mbinu iliyo na muundo ili kubaini udhaifu. Mwongozo huu unafupisha mbinu kamili, ukisisitiza mbinu za vitendo na zana.
Kuelewa Aina za API
- SOAP/XML Web Services: Tumia format ya WSDL kwa dokumenti, kawaida hupatikana kwenye path za
?wsdl
. Zana kama SOAPUI na WSDLer (Burp Suite Extension) ni muhimu kwa kusoma na kuunda requests. Mfano wa dokumenti upo kwenye DNE Online. - REST APIs (JSON): Dokumenti mara nyingi hutolewa kama faili za WADL, lakini zana kama Swagger UI zinatoa interface rahisi kwa kuingiliana. Postman ni zana muhimu kwa kuunda na kusimamia mifano ya requests.
- GraphQL: Lugha ya query kwa APIs inayotoa maelezo kamili na yanayoweza kueleweka ya data iliyopo kwenye API yako.
Maabara za Mazoezi
- VAmPI: API iliyoundwa kwa makusudi kuwa na udhaifu kwa mazoezi ya vitendo, ikifunika OWASP top 10 API vulnerabilities.
Mbinu Madhubuti za API Pentesting
- SOAP/XML Vulnerabilities: Chunguza XXE vulnerabilities, ingawa DTD declarations mara nyingi huwekewa vizuizi. CDATA tags zinaweza kuruhusu kuingiza payload ikiwa XML inabaki kuwa halali.
- Privilege Escalation: Jaribu endpoints kwa viwango tofauti vya vibali ili kubaini uwezekano wa ufikiaji usioidhinishwa.
- CORS Misconfigurations: Chunguza mipangilio ya CORS kwa uwezekano wa kutumiwa kupitia CSRF attacks kutoka kwa session zilizo authenticate-ikiwa.
- Endpoint Discovery: Tumia pattern za API kugundua endpoints zilizofichwa. Zana kama fuzzers zinaweza kuendesha mchakato huu kiotomatiki.
- Parameter Tampering: Jaribu kuongeza au kubadilisha parameters katika requests ili kupata data au functionalities zisizoidhinishwa.
- HTTP Method Testing: Badilisha methods za request (GET, POST, PUT, DELETE, PATCH) ili kugundua tabia zisizotarajiwa au ufunuo wa taarifa.
- Content-Type Manipulation: Badilisha kati ya content types tofauti (x-www-form-urlencoded, application/xml, application/json) kujaribu masuala ya parsing au udhaifu.
- Advanced Parameter Techniques: Jaribu aina za data zisizotarajiwa katika JSON payloads au cheza na data za XML kwa XXE injections. Pia, jaribu parameter pollution na wildcard characters kwa upimaji mpana.
- Version Testing: Toleo za zamani za API zinaweza kuwa nyeti zaidi kwa mashambulizi. Daima angalia na upime dhidi ya matoleo mengi ya API.
Authorization & Business Logic (AuthN != AuthZ) — tRPC/Zod protectedProcedure pitfalls
Stack za kisasa za TypeScript mara nyingi hutumia tRPC pamoja na Zod kwa validation ya input. Katika tRPC, protectedProcedure
kawaida inahakikisha request ina session halali (authentication) lakini haimaanishi mwito una haki ya role/vipengele (authorization). Mchanganyiko huu unaweza kusababisha Broken Function Level Authorization/BOLA ikiwa procedures nyeti zimefungwa tu kwa protectedProcedure
.
- Threat model: Mtumiaji yeyote aliye authenticate lakini mwenye vibali vya chini anaweza kusababisha procedures za daraja la admin ikiwa ukaguzi wa role haupo (mfano, background migrations, feature flags, tenant-wide maintenance, job control).
- Black-box signal:
POST /api/trpc/<router>.<procedure>
endpoints ambazo zinafanikiwa kwa akaunti za kawaida wakati zinapaswa kuwa kwa admin tu. Self-serve signups huongeza kwa kiasi kikubwa uwezekano wa kutumika. - Typical tRPC route shape (v10+): JSON body imefungwa chini ya
{"input": {...}}
.
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
}),
Utekelezaji wa vitendo (black-box)
- Sajili akaunti ya kawaida na upate sesi iliyothibitishwa (cookies/headers).
- Orodhesha background jobs au rasilimali nyeti kupitia taratibu za “list”/“all”/“status”.
curl -s -X POST 'https://<tenant>/api/trpc/backgroundMigrations.all' \
-H 'Content-Type: application/json' \
-b '<AUTH_COOKIES>' \
--data '{"input":{}}'
- Tekeleza vitendo vya kibali kama kuanzisha upya job:
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
- Uharibifu wa data kutokana na uanzishaji upya usio-idempotent: Kuamsha utekelezaji sambamba wa migrations/workers kunaweza kusababisha race conditions na hali zisizoendelevu kwa sehemu (kupotea kwa data bila ishara, analytics zilizoharibika).
- DoS via worker/DB starvation: Kurudia kuanzisha kazi nzito kunaweza kuchosha worker pools na muunganisho wa database, kusababisha kuzimwa kwa huduma kwa wapangaji wote.
Vifaa na Rasilimali kwa API Pentesting
- kiterunner: Inafaa sana kwa kugundua API endpoints. Itumie kufanya scan na brute force paths na parameters dhidi ya API lengwa.
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 ni zana ya mstari wa amri iliyoundwa kusaidia ukaguzi wa faili za ufafanuzi za Swagger/OpenAPI zilizo wazi kwa kukagua API endpoints zinazohusiana kwa uthibitishaji dhaifu. Pia hutoa templates za amri kwa ajili ya upimaji wa udhaifu kwa mkono.
- Zana nyingine kama automatic-api-attack-tool, Astra, na restler-fuzzer zinatoa vipengele vilivyobinafsishwa kwa ajili ya upimaji wa usalama wa API, kuanzia kuiga mashambulizi hadi fuzzing na uchunguzi wa udhaifu.
- Cherrybomb: Ni zana ya usalama ya API inayokagua API yako kwa msingi wa faili ya OAS (zana imeandikwa kwa Rust).
Rasilimali za Kujifunza na Mazoezi
- OWASP API Security Top 10: Kusoma muhimu kwa kuelewa udhaifu wa kawaida wa API (OWASP Top 10).
- API Security Checklist: Orodha kamili ya ukaguzi kwa ajili ya usalama wa API (GitHub link).
- Logger++ Filters: Kwa kuwinda udhaifu wa API, Logger++ inatoa vichujio muhimu (GitHub link).
- API Endpoints List: Orodha iliyochaguliwa ya endpoints za API zinazowezekana kwa madhumuni ya upimaji (GitHub gist).
Marejeo
- https://github.com/Cyber-Guy1/API-SecurityEmpire
- How An Authorization Flaw Reveals A Common Security Blind Spot: CVE-2025-59305 Case Study
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na 💬 kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter 🐦 @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.