reklama - zainteresowany?

Black Hat GraphQL. Bezpiecze - Helion

Black Hat GraphQL. Bezpiecze
Autor: Nick Aleks, Dolev Farhi
Tytuł oryginału: Black Hat GraphQL: API Attacks for Hackers and Pentesters
Tłumaczenie: Robert G
ISBN: 978-83-289-1124-6
stron: 328, Format: 165x228, okładka: mi
Data wydania: 2024-08-13
Księgarnia: Helion

Cena książki: 63,20 zł (poprzednio: 78,02 zł)
Oszczędzasz: 19% (-14,82 zł)

Dodaj do koszyka Black Hat GraphQL. Bezpiecze

Tagi: API

GraphQL powsta

Dodaj do koszyka Black Hat GraphQL. Bezpiecze

Spis treści

Black Hat GraphQL. Bezpieczeństwo API dla hakerów i pentesterów -- spis treści

O autorach

O redaktorze technicznym

Podziękowania

Wstęp

Wprowadzenie

1. Wprowadzenie do GraphQL

  • Podstawy
    • Korzenie
    • Przykłady zastosowania
    • Specyfikacja
  • W jaki sposób jest prowadzona komunikacja?
    • Schemat
    • Zapytania
    • Analizator składni zapytania i funkcje resolverów
  • Jakie problemy rozwiązuje GraphQL?
  • API GraphQL kontra API REST
    • Przykład oparty na API REST
    • Przykład oparty na GraphQL
    • Inne różnice
  • Pierwsze zapytanie
  • Podsumowanie

2. Przygotowanie laboratorium do pracy z GraphQL

  • Środki bezpieczeństwa
  • Instalowanie dystrybucji Kali
  • Instalowanie klientów internetowych
    • Wykonywanie zapytań z poziomu powłoki
    • Wykonywanie zapytań za pomocą narzędzia graficznego
  • Przygotowanie serwera GraphQL, w którym istnieją luki w zabezpieczeniach
    • Instalowanie Dockera
    • Wdrożenie aplikacji Damn Vulnerable GraphQL Application
    • Testowanie DVGA
  • Instalowanie narzędzi przeznaczonych do hakowania GraphQL
    • Burp Suite
    • Clairvoyance
    • InQL
    • Graphw00f
    • BatchQL
    • Nmap
    • Commix
    • graphql-path-enum
    • EyeWitness
    • GraphQL Cop
    • CrackQL
  • Podsumowanie

3. Płaszczyzna ataku na GraphQL

  • Czym jest płaszczyzna ataku?
  • Język
    • Zapytanie, mutacja i subskrypcja
    • Nazwa operacji
    • Pole
    • Argument
    • Alias
    • Fragment
    • Zmienna
    • Dyrektywa
  • Typy danych
    • Obiekt
    • Skalar
    • Wyliczenie
    • Unia
    • Interfejs
    • Dane wejściowe
  • Introspekcja
  • Weryfikacja i wykonywanie zapytania
  • Najczęściej spotykane słabe strony
    • Reguła specyfikacji i słaba strona implementacji
    • Odmowa usług
    • Ujawnienie informacji
    • Błędy w mechanizmach uwierzytelnienia i autoryzacji
    • Wstrzykiwanie kodu
  • Podsumowanie

4. Rekonesans

  • Wykrywanie GraphQL
    • Najczęściej stosowane punkty końcowe
    • Najczęściej udzielane odpowiedzi na zapytania
    • Skanowanie za pomocą narzędzia Nmap
    • Pole __typename
    • Graphw00f
  • Wykrywanie narzędzi GraphiQL Explorer i GraphQL Playground
    • Używanie EyeWitness do skanowania pod kątem interfejsów graficznych
    • Próba wykonania zapytania za pomocą klienta graficznego
  • Sprawdzanie GraphQL za pomocą introspekcji
    • Wizualizacja introspekcji za pomocą GraphQL Voyager
    • Generowanie za pomocą SpectaQL dokumentacji introspekcji
    • Wyszukiwanie informacji w przypadku, gdy introspekcja jest wyłączona
  • Sprawdzanie implementacji GraphQL
    • Wykrywanie serwera za pomocą Graphw00f
    • Analiza wyników
  • Podsumowanie

5. Atak typu DoS

  • Kierunki ataków typu DoS w GraphQL
  • Zapytania cykliczne
    • Relacje cykliczne w schemacie GraphQL
    • Jak wykrywać relacje cykliczne?
    • Luki w zabezpieczeniach związane z zapytaniami cyklicznymi
    • Luki w zabezpieczeniach związane z introspekcją cykliczną
    • Luki w zabezpieczeniach związane z fragmentami cyklicznymi
  • Powielanie pola
    • Sposób działania luki związanej z powielaniem pola
    • Testowanie pod kątem luk w zabezpieczeniach związanych z powielaniem pola
  • Przeciążenie aliasu
    • Nadużywanie aliasów na potrzeby ataków typu DoS
    • Łączenie aliasów i zapytań cyklicznych
  • Przeciążanie dyrektywy
    • Nadużywanie dyrektyw w atakach typu DoS
    • Testowanie pod kątem luk w zabezpieczeniach związanych z przeciążaniem dyrektywy
  • Przeciążanie limitu obiektu
  • Grupowanie zapytań za pomocą tablicy
    • Zrozumienie sposobu działania grupowania zapytań za pomocą tablicy
    • Testowanie pod kątem luk w zabezpieczeniach związanych z grupowaniem zapytań za pomocą tablicy
    • Łączenie zapytań cyklicznych i grupowania zapytań za pomocą tablicy
    • Używanie BatchQL do wykrycia dostępności grupowania zapytań za pomocą tablicy
  • Przeprowadzanie za pomocą narzędzia GraphQL Cop audytu podatności na ataki typu DoS
  • Zabezpieczenia GraphQL przed atakami typu DoS
    • Analiza kosztu zapytania
    • Ograniczenia głębokości zapytania
    • Ograniczenia oparte na aliasach i tablicach
    • Ograniczenia związane z powielaniem pól
    • Ograniczanie liczby zwracanych rekordów
    • Lista zapytań dozwolonych
    • Automatycznie trwale przechowywane zapytania
    • Przekroczenie czasu oczekiwania
    • Zapora sieciowa aplikacji internetowej
    • Brama działająca jako proxy
  • Podsumowanie

6. Ujawnianie informacji

  • Identyfikowanie sposobów ujawniania informacji w GraphQL
  • Zautomatyzowane wyodrębnianie schematu za pomocą narzędzia InQL
  • Jak sobie radzić z wyłączoną introspekcją
    • Wykrywanie wyłączonej introspekcji
    • Wykorzystanie środowiska innego niż produkcyjne
    • Wykorzystanie pola meta __type
  • Używanie funkcjonalności sugerowania nazwy pola
    • Poznajemy algorytm Edit-Distance
    • Optymalizacja używania funkcjonalności sugerowania nazwy pola
    • Uwzględnienie kwestii bezpieczeństwa
  • Wstawianie listy nazw pól
  • Wstawianie listy nazw typów w polu meta __type
  • Automatyzacja za pomocą narzędzia Clairvoyance funkcji sugerowania nazwy pola i wstawiania listy nazw
  • Nadużywanie komunikatów o błędzie
    • Analiza szczegółowego komunikatu o błędzie
    • Włączenie debugowania
    • Wyodrębnianie informacji ze stosu wywołań
  • Ujawnianie informacji za pomocą metody GET
  • Podsumowanie

7. Ominięcie uwierzytelnienia i autoryzacji

  • Stan uwierzytelnienia i autoryzacji w GraphQL
    • Modele wdrożenia in-band i out-of-band
    • Najczęściej stosowane podejścia
  • Testowanie uwierzytelnienia
    • Wykrywanie warstwy uwierzytelnienia
    • Ataki typu brute force przeprowadzane na hasła z użyciem funkcjonalności wstawiania listy nazw
    • Atak typu brute force na hasło z użyciem narzędzia CrackQL
    • Używanie listy nazw dozwolonych operacji
    • Podrabianie i wyciekanie danych uwierzytelniających JWT
  • Testowanie autoryzacji
    • Wykrywanie warstwy autoryzacji
    • Sprawdzanie ścieżek za pomocą graphql-path-enum
    • Przeprowadzanie za pomocą narzędzia CrackQL ataków typu brute force na argumenty i pola
  • Podsumowanie

8. Wstrzykiwanie kodu

  • Związane ze wstrzykiwaniem kodu luki w zabezpieczeniach GraphQL
    • Pole rażenia danych wejściowych o złośliwym działaniu
    • OWASP Top 10
  • Płaszczyzna ataku polegającego na wstrzykiwaniu kodu
    • Argumenty zapytania
    • Argumenty pola
    • Argumenty dyrektywy zapytania
    • Nazwy operacji
  • Punkty dostarczania danych wejściowych
  • Wstrzykiwanie kodu SQL
    • Poznajemy typy ataków związanych z SQLi
    • Testowanie pod kątem luki SQLi
    • Testowanie aplikacji DVGA pod kątem luki związanej z SQLi z użyciem oprogramowania Burp Suite
    • Automatyzacja ataku polegającego na wstrzykiwaniu kodu SQL
  • Wstrzykiwanie polecenia systemu operacyjnego
    • Przykład
    • Ręczne testowanie aplikacji DVGA
    • Zautomatyzowane testowanie z użyciem frameworka Commix
    • Analiza kodu funkcji resolvera
  • Cross-Site Scripting
    • Luka XSS typu odbijana
    • Luka XSS typu przechowywana
    • Luka XSS oparta na modelu DOM
    • Testowanie aplikacji DVGA pod kątem luk XSS
  • Podsumowanie

9. Fałszowanie i przechwytywanie żądań

  • Atak typu CSRF
    • Wyszukiwanie działań, które mogą prowadzić do zmiany stanu
    • Sprawdzanie pod kątem luk w zabezpieczeniach związanych z metodami POST
    • Automatyczne wysyłanie formularza w trakcie ataku typu CSRF
    • Sprawdzanie pod kątem luk w zabezpieczeniach związanych z metodami GET
    • Atak polegający na wstrzykiwaniu kodu HTML
    • Testowanie automatyczne za pomocą narzędzi BatchQL i GraphQL Cop
    • Unikanie ataków typu CSRF
  • Atak typu SSRF
    • Poznajemy typy ataków SSRF
    • Wyszukiwanie podatnych na ataki operacji, pól i argumentów
    • Testowanie pod kątem luki SSRF
    • Zapobieganie atakom typu SSRF
  • Przechwytywanie WebSocket
    • Wyszukiwanie operacji subskrypcji
    • Przechwytywanie zapytania subskrypcji
    • Ochrona przed atakami typu CSWSH
  • Podsumowanie

10. Exploity i ujawnione luki w zabezpieczeniach

  • Odmowa usług
    • Ogromne dane używane podczas ataku
    • Wyrażenia regularne (CS Money)
    • Zapytanie cykliczne introspekcji (GitLab)
    • Aliasy dla powielania pola (Magento)
    • Grupowanie zapytań za pomocą tablicy na potrzeby powielania pola (WPGraphQL)
    • Fragmenty cykliczne (Agoo)
  • Nieprawidłowa autoryzacja
    • Umożliwienie dostępu do danych dezaktywowanym użytkownikom (GitLab)
    • Pozwolenie nieuprzywilejowanemu pracownikowi firmy na modyfikowanie adresu e-mail użytkownika (Shopify)
    • Ujawnienie liczby dozwolonych hakerów za pomocą obiektuteam (HackerOne)
    • Odczytywanie notatek prywatnych (GitLab)
    • Ujawnienie informacji na temat transakcji płatności (HackerOne)
  • Ujawnienie informacji
    • Lista użytkowników GraphQL (GitLab)
    • Uzyskanie dostępu do zapytania introspekcji za pomocą WebSocket (Nuri)
  • Wstrzykiwanie kodu
    • Wstrzykiwanie kodu SQL za pomocą parametru zapytania GET (HackerOne)
    • Wstrzykiwanie kodu SQL w argumencie Object (Apache SkyWalking)
    • Cross-Site Scripting (GraphQL Playground)
  • Cross-Site Request Forgery (GitLab)
  • Podsumowanie

A. Lista rzeczy do sprawdzenia podczas testowania GraphQL

  • Rekonesans
  • Odmowa usług
  • Ujawnianie informacji
  • Uwierzytelnienie i autoryzacja
  • Wstrzykiwanie kodu
  • Fałszowanie żądań
  • Przechwytywanie żądań

B. Zasoby dotyczące bezpieczeństwa GraphQL

  • Wskazówki i podpowiedzi dotyczące testów penetracyjnych
  • Laboratoria hakerskie do samodzielnego wypróbowania
  • Klipy wideo związane z zapewnieniem bezpieczeństwa

Dodaj do koszyka Black Hat GraphQL. Bezpiecze

Code, Publish & WebDesing by CATALIST.com.pl



(c) 2005-2024 CATALIST agencja interaktywna, znaki firmowe należą do wydawnictwa Helion S.A.