Přeskočit na hlavní obsah

Penetrační testy API

 Penetrační testy API

Aplikace založené na architektuře Frontend, Backend potkávám při testech často. Součastí Backendu bývá API. Attack surface testu API, je poměrně malý.  Test jsou specifické, zaměřené na nalezení zranitelností v autentizaci a v injekce paylodu pomocí fuzingu. Je vhodné je provádět jako Gray Box - šedivé. Zadavatel testu poskytne dokumentaci a uživatelský přístup. Black box testy API většinou nepřináší nová zjištění.| 

Penetrační testy API od testera vyžadují pochopení toho jak API pracuje a jakým způsobem si předává parametry. Místa kde jsou uvedeny hodnoty parametrů jsou pro nás důležité, při testu hodnoty fuzujeme. Většinou to bývá část URL a datový payload http packetu. Struktura data payloadu může být ve tvaru JSON, XML, případně binární data kódovaná base64. Autentizace požadavků bývá zabezpečena bear tokenem a někdy i dalším klíčem. Platnost tokenu by měla být časově omezena.

Při komunikaci s API se využívají kromě běžných metod GET, POST i metody DELETE, PUT. To je vhodné při testech zohlednit a fuzzovat všechny metody.

Reconnaissance

Základní OSINT cíle - postup krok za krokem


Fuzzing parametru - setup testu

Komponety testu

Postup při testování

  • Pomocí Swager vygenerujeme API požadavek
  • Spustíme curl odešleme požadavek na server
  • Požadavek zachytíme na intercepting proxy a začneme fuzzovat parametry
  • Vyhodnocujeme odpovědi, Hledáme chybová hlášení a mapujeme architekturu řešení

 

Injekce - nejčastější identifikované zranitelností

 

 

  • XSS Cross Site Scripting - injektujeme JavaScript do dat a při zobrazení na frontendu dojde ke s spuštění Java Script kódu. Při využitím této zranitelnosti můžeme například zahookovat browser a získat parametry ze session pomocí BEEF
  • Náchylnost na SQL Injekce, testujeme tamperingem parametru na horní apostrof  '. Automaticky pomocí SQLMap
  • XXE XML External Entity attack. XML parsery jsou komplexní software a mají spoustu funkcí. Někdy se podaří získat pomocí této zranitelností přístup k lokální souborů k souborům připojených systémů

Zmírnění rizik - mitigace

Účinná obrana, která zabrání vzniku zranitelnosti vyžaduje komplexní přístup. Je vhodné oddělovat data od příkazů. Důsledně validovat, sanitizovat a neutralizovat uživatelské vstupy. Aplikovat přístup Zero-Trust. Obsloužit všechny výjimky a kontrolovat návratové kódy funkci a procedur.


 


 

 

Komentáře