O autorze
O korektorze merytorycznym
Przedmowa
Podziękowania
Wprowadzenie
I. CZYM JEST BEZPIECZEŃSTWO INTERFEJSÓW API?
0. PRZYGOTOWANIE TESTÓW BEZPIECZEŃSTWA
Uzyskanie upoważnienia
Modelowanie zagrożeń przed testem interfejsu API
Jakie cechy interfejsu API należy testować?
Testy mechanizmów uwierzytelniania
Zapory WAF
Testy aplikacji mobilnych
Audyt dokumentacji interfejsu API
Testy limitu zapytań
Ograniczenia i wykluczenia
Testy chmurowych interfejsów API
Testy odporności na ataki DoS
Raportowanie i testowanie środków zaradczych
Uwaga dotycząca programów dla łowców nagród
Podsumowanie
1. JAK DZIAŁAJĄ APLIKACJE INTERNETOWE?
Podstawy aplikacji internetowych
Adres URL
Zapytania HTTP
Odpowiedzi HTTP
Kody stanu HTTP
Metody HTTP
Połączenia stanowe i bezstanowe
Bazy danych w aplikacjach internetowych
Relacyjne bazy danych
Nierelacyjne bazy danych
Miejsce interfejsów API
Podsumowanie
2. ANATOMIA INTERFEJSU API
Jak działają internetowe interfejsy API?
Typy internetowych interfejsów API
REST
GraphQL
Specyfikacje REST API
Formaty wymiany danych
JSON
XML
YAML
Uwierzytelnianie
Podstawowe uwierzytelnienie
Klucze API
Tokeny JWT
HMAC
OAuth 2.0
Brak uwierzytelnienia
Praktyczne ćwiczenie: badanie interfejsu API Twittera
Podsumowanie
3. TYPOWE PODATNOŚCI INTERFEJSÓW API
Wycieki informacji
Wadliwa autoryzacja na poziomie obiektu
Wadliwa autoryzacja użytkownika
Nadmierna ekspozycja danych
Brak zasobów i limitu zapytań
Wadliwa autoryzacja na poziomie funkcji
Przypisanie masowe
Błędna konfiguracja zabezpieczeń
Wstrzykiwanie danych
Niewłaściwe zarządzanie zasobami
Błędy w procedurach biznesowych
Podsumowanie
II. BUDOWANIE LABORATORIUM TESTOWANIA INTERFEJSÓW API
4. TWÓJ SYSTEM HAKERSKI
Kali Linux
Analiza aplikacji internetowych za pomocą DevTools
Przechwytywanie i modyfikowanie zapytań za pomocą Burp Suite
Konfiguracja FoxyProxy
Instalacja certyfikatu Burp Suite
Korzystanie z programu Burp Suite
Przechwytywanie komunikacji
Modyfikowanie zapytań za pomocą modułu Intruder
Wysyłanie zapytań za pomocą programu Postman
Edytor zapytań
Środowisko
Kolekcja
Wysyłanie kolekcji zapytań
Generowanie kodu
Testy
Integracja programów Postman i Burp Suite
Dodatkowe narzędzia
Przeprowadzanie rekonesansu za pomocą narzędzia OWASP Amass
Wykrywanie punktów końcowych za pomocą programu Kiterunner
Wykrywanie podatności za pomocą Nikto
Wykrywanie podatności za pomocą OWASP ZAP
Zakłócanie za pomocą Wfuzz
Wykrywanie parametrów zapytań za pomocą Arjun
Podsumowanie
Ćwiczenie 1. Zliczenie kont użytkowników interfejsu API
5. PRZYGOTOWANIE PODATNYCH INTERFEJSÓW API
Utworzenie hosta z systemem Linux
Instalacja środowisk Docker i Docker Compose
Instalacja podatnych aplikacji
crAPI
Pixi
Juice Shop
DVGA
Inne podatne aplikacje
Hakowanie interfejsów API w serwisach TryHackMe i HackTheBox
Podsumowanie
Ćwiczenie 2. Wyszukanie podatnych na ataki interfejsów API
III. ATAKOWANIE INTERFEJSÓW API
6. ODKRYWANIE INTERFEJSÓW API
Rekonesans pasywny
Proces rekonesansu pasywnego
Hakowanie za pomocą Google
Katalog interfejsów API – ProgrammableWeb
Shodan
OWASP Amass
Informacje eksponowane w serwisie GitHub
Rekonesans aktywny
Proces rekonesansu aktywnego
Ogólne skanowanie za pomocą Nmap
Wyszukiwanie ukrytych ścieżek w pliku robots.txt
Wyszukiwanie poufnych informacji za pomocą Chrome DevTools
Weryfikacja interfejsu API za pomocą Burp Suite
Skanowanie identyfikatorów URI za pomocą OWASP ZAP
Wyszukiwanie identyfikatorów URI metodą brutalnej siły za pomocą programu Gobuster
Wykrywanie zasobów interfejsów API za pomocą narzędzia Kiterunner
Podsumowanie
Ćwiczenie 3. Rekonesans aktywny w teście czarnej skrzynki
7. ANALIZA PUNKTÓW KOŃCOWYCH
Pozyskiwanie informacji o zapytaniach
Wyszukiwanie informacji w dokumentacji
Import specyfikacji interfejsu API
Inżynieria odwrotna interfejsu API
Konfiguracja uwierzytelnienia w programie Postman
Analiza funkcjonalności interfejsu
Testowanie interfejsu zgodnie z przeznaczeniem
Wykonywanie operacji jako uwierzytelniony użytkownik
Analiza odpowiedzi
Wyszukiwanie wycieków informacji
Wyszukiwanie błędów w konfiguracji zabezpieczeń
Szczegółowe komunikaty o błędach
Słabe algorytmy szyfrowania
Problematyczna konfiguracja
Wyszukiwanie nadmiernej ekspozycji danych
Wyszukiwanie błędów w procedurach biznesowych
Podsumowanie
Ćwiczenie 4. Utworzenie kolekcji crAPI i identyfikacja nadmiernej ekspozycji danych
8. ATAKOWANIE PROCESU UWIERZYTELNIANIA UŻYTKOWNIKÓW
Typowe ataki na procesy uwierzytelniania użytkowników
Łamanie poświadczeń metodą brutalnej siły
Reset hasła i atakowanie procesu uwierzytelnienia wieloskładnikowego metodą brutalnej siły
Rozpylanie haseł
Kodowanie Base64 w atakach metodą brutalnej siły
Fałszowanie tokenów
Analiza ręcznie załadowanej listy tokenów
Analiza przechwytywanych tokenów
Generowanie prawdopodobnych tokenów
Łamanie tokenów JWT
Identyfikacja i analiza tokenów JWT
Eliminacja algorytmu kodowania
Podmiana algorytmu
Łamanie tokenu JWT
Podsumowanie
Ćwiczenie 5. Łamanie podpisu tokenu JWT w aplikacji crAPI
9. ZAKŁÓCANIE INTERFEJSU API
Skuteczne zakłócanie interfejsów API
Dobór ładunków zakłócających
Wykrywanie anomalii
Zakłócanie interfejsu wszerz i w głąb
Zakłócanie interfejsu wszerz za pomocą programu Postman
Zakłócanie interfejsu w głąb za pomocą programu Burp Suite
Zakłócanie interfejsu w głąb za pomocą programu Wfuzz
Zakłócanie interfejsu wszerz i identyfikowanie niewłaściwego zarządzania zasobami
Testowanie metod HTTP za pomocą programu Wfuzz
Głębsze zakłócanie interfejsu i omijanie weryfikacji danych wejściowych
Zakłócanie interfejsu i przełączanie katalogów
Podsumowanie
Ćwiczenie 6. Zakłócanie interfejsu wszerz i niewłaściwe zarządzanie zasobami
10. EKSPLORACJA PROCESU AUTORYZACJI UŻYTKOWNIKÓW
Identyfikacja podatności BOLA
Określenie identyfikatora zasobu
Test A-B podatności BOLA
Test podatności BOLA z użyciem kanału bocznego
Identyfikacja podatności BFLA
Test A-B-A podatności BFLA
Testowanie podatności BFLA za pomocą programu Postman
Wskazówki dotyczące hakowania procesu autoryzacji
Zmienne kolekcji w programie Postman
Wyszukiwanie i zmienianie zapytań w programie Burp Suite
Podsumowanie
Ćwiczenie 7. Lokalizacja pojazdu innego użytkownika
11. PRZYPISANIE MASOWE
Identyfikowanie przypisania masowego
Rejestrowanie konta
Nieautoryzowany dostęp do zasobów innej organizacji
Identyfikacja kluczy
Wyszukiwanie kluczy w dokumentacji
Zakłócanie niezrozumiałych kluczy
Losowe testowanie podatności na przypisanie masowe
Testowanie podatności na przypisanie masowe za pomocą programów Arjun i Burp Suite Intruder
Test podatności BFLA i przypisania masowego
Podsumowanie
Ćwiczenie 8. Modyfikacja ceny produktu w sklepie internetowym
12. WSTRZYKIWANIE DANYCH
Identyfikacja podatności na wstrzykiwanie danych
Skrypty międzydomenowe (XSS)
Skrypty międzyinterfejsowe (XAS)
Wstrzykiwanie zapytań SQL
Specjalne ciągi znaków w zapytaniach SQL
SQLmap
Wstrzykiwanie zapytań NoSQL
Wstrzykiwanie poleceń systemu operacyjnego
Podsumowanie
Ćwiczenie 9. Wyłudzanie kuponów poprzez wstrzykiwanie zapytań NoSQL
IV. HAKOWANIE INTERFEJSÓW API W PRAKTYCE
13. OMIJANIE ZABEZPIECZEŃ I TESTOWANIE LIMITU ZAPYTAŃ
Omijanie mechanizmów ochrony
Jak funkcjonuje mechanizm ochrony?
Wykrywanie mechanizmów ochrony
Fikcyjne konta
Techniki uników
Omijanie zabezpieczeń za pomocą programu Burp Suite
Omijanie zabezpieczeń za pomocą programu Wfuzz
Testowanie limitu zapytań
Przestrzeganie łagodnych limitów
Modyfikacja ścieżki URL
Fałszowanie nagłówka pochodzenia
Rotacja adresów IP w Burp Suite
Podsumowanie
14. ATAKOWANIE INTERFEJSU GRAPHQL API
Zapytania GraphQL i środowisko IDE
Aktywny rekonesans aplikacji DVGA
Skanowanie
Badanie za pomocą przeglądarki
Badanie za pomocą narzędzi DevTools
Inżynieria odwrotna interfejsu GraphQL API
Identyfikacja punktu końcowego metodą brutalnej siły
Modyfikacja nagłówka w celu uzyskania dostępu do środowiska GraphiQL
Inżynieria odwrotna interfejsu GraphQL API
Inżynieria odwrotna interfejsu przy użyciu zapytania introspekcyjnego
Analiza interfejsu GraphQL API
Tworzenie zapytań za pomocą eksploratora dokumentacji
Rozszerzenie InQL programu Burp Suite
Zakłócanie i wstrzykiwanie poleceń
Podsumowanie
15. WŁAMANIA DO INTERFEJSÓW API I POLOWANIA NA NAGRODYWłamania do interfejsów API i polowania na nagrody
Włamania
Peloton
Poczta Stanów Zjednoczonych
T-Mobile
Polowania na nagrody
Cena dobrego klucza API
Błąd w procesie autoryzacji w prywatnym interfejsie API
Starbucks – włamanie, którego nie było
Podatność BOLA interfejsu GraphQL API w serwisie Instagram
Podsumowanie
ZAKOŃCZENIE
A. LISTA KONTROLNA HAKERA
B. DODATKOWE MATERIAŁY
SKOROWIDZ
Opinie
Na razie nie ma opinii o produkcie.