Web API Pentesting

Reading time: 4 minutes

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks

API Pentesting Metodologija - Sažetak

Pentesting API-ja uključuje strukturirani pristup otkrivanju ranjivosti. Ovaj vodič obuhvata sveobuhvatnu metodologiju, naglašavajući praktične tehnike i alate.

Razumevanje Tipova API-ja

  • SOAP/XML Web Servisi: Koriste WSDL format za dokumentaciju, obično se nalaze na ?wsdl putanjama. Alati kao što su SOAPUI i WSDLer (Burp Suite Extension) su ključni za parsiranje i generisanje zahteva. Primer dokumentacije je dostupan na DNE Online.
  • REST API (JSON): Dokumentacija često dolazi u WADL datotekama, ali alati kao što je Swagger UI pružaju korisnički prijatniji interfejs za interakciju. Postman je koristan alat za kreiranje i upravljanje primerima zahteva.
  • GraphQL: Jezik upita za API-je koji nudi potpunu i razumljivu opis podataka u vašem API-ju.

Praktične Laboratorije

  • VAmPI: Namerno ranjiv API za praktičnu obuku, pokrivajući OWASP top 10 API ranjivosti.

Efikasne Tehnike za API Pentesting

  • SOAP/XML Ranjivosti: Istražite XXE ranjivosti, iako su DTD deklaracije često ograničene. CDATA tagovi mogu omogućiti umetanje payload-a ako XML ostane validan.
  • Povećanje Privilegija: Testirajte krajnje tačke sa različitim nivoima privilegija kako biste identifikovali mogućnosti neovlašćenog pristupa.
  • CORS Pogrešne Konfiguracije: Istražite CORS podešavanja za potencijalnu iskoristivost kroz CSRF napade iz autentifikovanih sesija.
  • Otkriće Krajnjih Tačaka: Iskoristite API obrasce za otkrivanje skrivenih krajnjih tačaka. Alati kao što su fuzzers mogu automatizovati ovaj proces.
  • Manipulacija Parametrima: Eksperimentišite sa dodavanjem ili zamenom parametara u zahtevima kako biste pristupili neovlašćenim podacima ili funkcionalnostima.
  • Testiranje HTTP Metoda: Varirajte metode zahteva (GET, POST, PUT, DELETE, PATCH) kako biste otkrili neočekivana ponašanja ili otkrivanje informacija.
  • Manipulacija Content-Type: Prebacujte se između različitih tipova sadržaja (x-www-form-urlencoded, application/xml, application/json) kako biste testirali probleme sa parsiranjem ili ranjivosti.
  • Napredne Tehnike Parametara: Testirajte sa neočekivanim tipovima podataka u JSON payload-ima ili se igrajte sa XML podacima za XXE injekcije. Takođe, pokušajte sa zagađenjem parametara i karakterima sa zvezdicom za šire testiranje.
  • Testiranje Verzija: Starije verzije API-ja mogu biti podložnije napadima. Uvek proverite i testirajte protiv više verzija API-ja.

Alati i Resursi za API Pentesting

  • kiterunner: Odličan za otkrivanje API krajnjih tačaka. Koristite ga za skeniranje i brute force putanja i parametara protiv ciljanih API-ja.
bash
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 je alat za komandnu liniju dizajniran da pomogne u reviziji izloženih Swagger/OpenAPI definicija proverom povezanih API krajnjih tačaka na slabu autentifikaciju. Takođe pruža šablone komandi za ručno testiranje ranjivosti.
  • Dodatni alati kao što su automatic-api-attack-tool, Astra i restler-fuzzer nude prilagođene funkcionalnosti za testiranje sigurnosti API-ja, od simulacije napada do fuzzinga i skeniranja ranjivosti.
  • Cherrybomb: To je alat za sigurnost API-ja koji vrši reviziju vašeg API-ja na osnovu OAS datoteke (alat napisan u rustu).

Resursi za učenje i praksu

  • OWASP API Security Top 10: Osnovno štivo za razumevanje uobičajenih ranjivosti API-ja (OWASP Top 10).
  • API Security Checklist: Sveobuhvatna lista za osiguranje API-ja (GitHub link).
  • Logger++ Filters: Za pronalaženje ranjivosti API-ja, Logger++ nudi korisne filtre (GitHub link).
  • API Endpoints List: Kurirana lista potencijalnih API krajnjih tačaka za testiranje (GitHub gist).

Reference

tip

Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Podržite HackTricks