Bug Bounty Bootcamp. Przewodnik po tropieniu i zgłaszaniu luk w zabezpieczeniach - ebook
Bug Bounty Bootcamp. Przewodnik po tropieniu i zgłaszaniu luk w zabezpieczeniach - ebook
Wyśledzenie luki w zabezpieczeniach aplikacji i przejęcie kontroli nad chronionym zasobem jest wyjątkowo ekscytującym doświadczeniem: oto dzięki własnym umiejętnościom można pokonywać kolejne ograniczenia i osiągać cele, które na pozór wydają się nierealne. Od pewnego czasu takie eksperymenty z hakowaniem można prowadzić całkowicie legalnie, a nawet nieźle na tym zarabiać. Wiele firm uruchamia programy bug bounty, w ramach których nagradza hakerów i badaczy bezpieczeństwa za odnajdywanie luk w zabezpieczeniach w korporacyjnych systemach.
Ta książka jest kompleksowym i praktycznym przewodnikiem po hakowaniu aplikacji internetowych w ramach udziału w programach bug bounty. Znajdziesz w niej wszystkie niezbędne informacje, od budowania relacji z klientami i pisania znakomitych raportów o błędach w zabezpieczeniach po naukę zaawansowanych technik hakerskich. Dowiesz się, jak przygotować własne laboratorium hakerskie i zgłębisz typowe techniki działania, takie jak XSS czy SQL injection. Zapoznasz się również ze strategiami prowadzenia rekonesansu i sposobami jego automatyzacji za pomocą skryptów powłoki bash. Nie zabrakło tu opisu hakowania aplikacji mobilnych, testowania interfejsów API i inspekcji kodu źródłowego pod kątem luk w zabezpieczeniach
Najciekawsze zagadnienia:
- identyfikowanie typowych luk w zabezpieczeniach sieciowych
- praca z pakietem Burp Suite
- kumulowanie wpływu wielu błędów w zabezpieczeniach
- obchodzenie zabezpieczeń metodą sanityzacji danych wejściowych i listy elementów blokowanych
- automatyzacja żmudnych zadań za pomocą fuzzingu i skryptów powłoki bash
- konfiguracja środowiska testowego dla aplikacji pracujących w Androidzie
Bug bounty: wyśledź, zhakuj, opisz - i zgarnij nagrodę!
Spis treści
Przedmowa
Wstęp
Część I. Branża
1. Wybór programu bug bounty
- Stan branży
- Typy zasobów
- Serwisy i aplikacje społecznościowe
- Ogólne aplikacje internetowe
- Aplikacje mobilne (Android, iOS i Windows)
- Interfejsy API
- Kod źródłowy i programy wykonywalne
- Sprzęt i internet rzeczy
- Platformy bug bounty
- Zalety
- Wady
- Zakresy, wypłaty i czasy reakcji
- Zakres programu
- Kwoty wypłat
- Czas reakcji
- Programy prywatne
- Wybór właściwego programu
- Szybkie porównanie popularnych programów
2. Jak zapracować na sukces?
- Pisanie dobrych raportów
- Krok 1. Wymyśl opisowy tytuł
- Krok 2. Napisz przejrzyste podsumowanie
- Krok 3. Uwzględnij ocenę dotkliwości
- Krok 4. Podaj szczegółowe kroki do odtworzenia ataku
- Krok 5. Przedstaw dowód koncepcji
- Krok 6. Opisz wpływ i scenariusze ataku
- Krok 7. Zarekomenduj możliwe środki zaradcze
- Krok 8. Sprawdź raport
- Dodatkowe wskazówki dotyczące pisania lepszych raportów
- Budowanie relacji z zespołem programistycznym
- Stany raportu
- Radzenie sobie z konfliktami
- Budowanie partnerstwa
- Dlaczego nie odnosisz sukcesu?
- Dlaczego nie znajdujesz błędów?
- Dlaczego Twoje raporty są odrzucane?
- Co robić, gdy utkniesz w miejscu?
- Krok 1. Zrób sobie przerwę!
- Krok 2. Zbuduj zestaw umiejętności
- Krok 3. Zyskaj nową perspektywę
- Na koniec kilka słów z doświadczenia
Część II. Zaczynamy!
3. Jak działa internet?
- Model klient-serwer
- System nazw domenowych
- Porty internetowe
- Żądania i odpowiedzi HTTP
- Kontrola bezpieczeństwa w internecie
- Kodowanie zawartości
- Zarządzanie sesją i pliki cookie HTTP
- Uwierzytelnianie oparte na tokenach
- Tokeny sieciowe JSON
- Reguła tego samego pochodzenia
- Ucz się programować
4. Konfiguracja środowiska i przechwytywanie ruchu
- Wybór systemu operacyjnego
- Konfigurowanie narzędzi podstawowych - przeglądarka i serwer proxy
- Otwieranie osadzonej przeglądarki
- Konfigurowanie przeglądarki Firefox
- Konfigurowanie Burpa
- Korzystanie z Burpa
- Proxy
- Intruder
- Repeater
- Decoder
- Comparer
- Zapisywanie żądań Burpa
- Ostatnie uwagi na temat robienia notatek
5. Rekonesans przed hakowaniem aplikacji internetowych
- Ręczna trawersacja celu
- Google dorking
- Wykrywanie zakresu
- WHOIS i odwrotne WHOIS
- Adresy IP
- Parsowanie certyfikatu
- Enumeracja poddomen
- Enumeracja usług
- Brute forcing katalogów
- Indeksowanie witryn
- Hostowanie zewnętrzne
- Rekonesans z wykorzystaniem GitHuba
- Inne podstępne techniki białego wywiadu
- Fingerprinting stosu technologicznego
- Pisanie własnych skryptów rekonesansowych
- Podstawy pisania skryptów bashowych
- Zapisywanie w pliku danych wyjściowych narzędzia
- Dodanie do danych wyjściowych daty skanowania
- Dodawanie opcji wyboru uruchamianych narzędzi
- Uruchamianie dodatkowych narzędzi
- Parsowanie wyników
- Tworzenie raportu głównego
- Skanowanie wielu domen
- Pisanie biblioteki funkcji
- Budowanie interaktywnych programów
- Używanie specjalnych zmiennych i znaków
- Planowanie automatycznego skanowania
- Kilka słów na temat interfejsów API rekonesansu
- Zacznij hakować!
- Narzędzia wymienione w tym rozdziale
- Wykrywanie zakresu
- Biały wywiad
- Fingerprinting stosu technologicznego
- Automatyzacja
Część III. Luki w zabezpieczeniach sieciowych
6. Cross-site scripting
- Mechanizmy
- Rodzaje ataków XSS
- Zapisywany XSS
- Ślepy XSS
- Odbijany XSS
- XSS oparty na modelu DOM
- XSS własny
- Zapobieganie
- Tropienie błędów XSS
- Krok 1. Szukaj możliwości wprowadzania danych
- Krok 2. Wstawiaj ładunki
- Krok 3. Potwierdź działanie ładunku
- Omijanie ochrony przed atakami XSS
- Alternatywna składnia JavaScriptu
- Wielkość liter i kodowanie
- Błędy logiki filtra
- Eskalacja ataku
- Automatyzacja tropienia błędów XSS
- Szukanie pierwszego błędu XSS!
7. Otwarte przekierowania
- Mechanizmy
- Zapobieganie
- Tropienie błędów open redirect
- Krok 1. Poszukaj parametrów przekierowania
- Krok 2. Użyj Google dorkingu, aby znaleźć dodatkowe parametry przekierowania
- Krok 3. Przetestuj otwarte przekierowania oparte na parametrach
- Krok 4. Przetestuj otwarte przekierowania oparte na odsyłaczach
- Omijanie ochrony przed atakami open redirect
- Używanie autokorekty przeglądarki
- Eksploitacja logiki wadliwego walidatora
- Korzystanie z adresów URL danych
- Eksploitacja dekodowania URL
- Łączenie technik eksploitacji
- Eskalacja ataku
- Szukanie pierwszego otwartego przekierowania!
8. Porywanie kliknięć
- Mechanizmy
- Zapobieganie
- Tropienie błędów clickjackingu
- Krok 1. Poszukaj działań zmieniających stan
- Krok 2. Sprawdź nagłówki odpowiedzi
- Krok 3. Potwierdź lukę w zabezpieczeniach
- Obchodzenie zabezpieczeń
- Eskalacja ataku
- Uwagi na temat dostarczania ładunku clickjackingu
- Szukanie pierwszej luki clickjackingu!
9. Fałszowanie żądań przesyłanych między witrynami
- Mechanizmy
- Zapobieganie
- Tropienie błędów CSRF
- Krok 1. Namierz działania zmieniające stan
- Krok 2. Poszukaj brakujących zabezpieczeń przed CSRF
- Krok 3. Potwierdź lukę w zabezpieczeniach
- Omijanie ochrony przed CSRF
- Wykorzystanie clickjackingu
- Zmiana metody żądania
- Obejście tokenów CSRF przechowywanych na serwerze
- Omijanie podwójnie przesyłanych tokenów CSRF
- Omijanie kontroli nagłówka referencyjnego CSRF
- Omijanie ochrony przed CSRF przy użyciu ataku XSS
- Eskalacja ataku
- Wykorzystanie luki CSRF do spowodowania wycieku informacji o użytkownikach
- Wykorzystanie luki CSRF do utworzenia zapisywanego XSS-a własnego
- Wykorzystanie luki CSRF do przejmowania kont użytkowników
- Dostarczanie ładunku CSRF-a
- Szukanie pierwszej luki CSRF!
10. Niezabezpieczone bezpośrednie odwołania do obiektów
- Mechanizmy
- Zapobieganie
- Tropienie błędów IDOR
- Krok 1. Utwórz dwa konta
- Krok 2. Odkryj oferowane funkcjonalności
- Krok 3. Przechwytuj żądania
- Krok 4. Zmieniaj identyfikatory
- Omijanie ochrony przed IDOR-ami
- Kodowane i mieszane identyfikatory
- Wyciekające identyfikatory
- Przekaż aplikacji identyfikator, nawet jeśli o niego nie prosi
- Szukaj IDOR-ów ślepych
- Zmień metodę żądania
- Zmień typ żądanego pliku
- Eskalacja ataku
- Automatyzacja ataku
- Szukanie pierwszego IDOR-a!
11. Wstrzyknięcie SQL
- Mechanizmy
- Wstrzykiwanie kodu do zapytań SQL
- Korzystanie ze wstrzyknięcia SQL drugiego rzędu
- Zapobieganie
- Tropienie błędów wstrzyknięcia SQL
- Krok 1. Szukaj klasycznych wstrzyknięć SQL
- Krok 2. Szukaj ślepych wstrzyknięć SQL
- Krok 3. Eksfiltruj informacje za pomocą wstrzyknięć SQL
- Krok 4. Szukaj wstrzyknięć NoSQL
- Eskalacja ataku
- Zdobądź wiedzę o bazie danych
- Uzyskaj dostęp do powłoki internetowej
- Automatyzacja wstrzyknięć SQL
- Szukanie pierwszego wstrzyknięcia SQL!
12. Sytuacje wyścigu
- Mechanizmy
- Kiedy sytuacja wyścigu staje się luką w zabezpieczeniach?
- Zapobieganie
- Tropienie sytuacji wyścigu
- Krok 1. Znajdź funkcjonalności podatne na sytuacje wyścigu
- Krok 2. Wysyłaj żądania jednocześnie
- Krok 3. Sprawdź wyniki
- Krok 4. Przygotuj dowód słuszności koncepcji
- Eskalacja sytuacji wyścigu
- Szukanie pierwszej sytuacji wyścigu!
13. Fałszowanie żądań wykonywanych po stronie serwera
- Mechanizmy
- Zapobieganie
- Tropienie błędów SSRF
- Krok 1. Znajdź funkcjonalności podatne na ataki SSRF
- Krok 2. Przekaż potencjalnie podatnym punktom końcowym wewnętrzne adresy URL
- Krok 3. Sprawdź wyniki
- Omijanie zabezpieczeń przed atakami SSRF
- Omijanie list elementów dozwolonych
- Omijanie list elementów blokowanych
- Eskalacja ataku
- Wykonaj skanowanie sieci
- Pozyskaj metadane instancji
- Eksploituj ślepe SSRF
- Zaatakuj sieć
- Szukanie pierwszego SSRF!
14. Niezabezpieczona deserializacja
- Mechanizmy
- PHP
- Java
- Zapobieganie
- Tropienie błędów niezabezpieczonej deserializacji
- Eskalacja ataku
- Szukanie pierwszej niezabezpieczonej deserializacji!
15. Encja zewnętrzna XML-a
- Mechanizmy
- Zapobieganie
- Tropienie błędów XXE
- Krok 1. Znajdź punkty wejścia danych XML-a
- Krok 2. Przeprowadź testy pod kątem klasycznych XXE
- Krok 3. Przeprowadź testy pod kątem ślepych XXE
- Krok 4. Osadź ładunki XXE w różnych typach plików
- Krok 5. Przeprowadź testy pod kątem ataków XInclude
- Eskalacja ataku
- Odczytywanie plików
- Inicjowanie ataków SSRF
- Używanie ślepych XXE
- Przeprowadzanie ataków DoS
- Kilka słów o eksfiltracji danych przy użyciu XXE
- Szukanie pierwszego błędu XXE!
16. Wstrzyknięcie szablonu
- Mechanizmy
- Silniki szablonów
- Kod wstrzyknięcia szablonu
- Zapobieganie
- Tropienie błędów wstrzyknięcia szablonu
- Krok 1. Szukaj lokalizacji wprowadzania danych przez użytkownika
- Krok 2. Wykrywaj wstrzykiwanie szablonu dzięki przesyłaniu ładunków testowych
- Krok 3. Określ stosowany silnik szablonów
- Eskalacja ataku
- Szukanie dostępu do systemu za pomocą kodu Pythona
- Ucieczka z piaskownicy przy użyciu wbudowanych funkcji Pythona
- Przesyłanie ładunków do testowania
- Automatyzacja wstrzyknięcia szablonu
- Szukanie pierwszego błędu wstrzyknięcia szablonu!
17. Błędy logiki aplikacji i uszkodzona kontrola dostępu
- Błędy logiki aplikacji
- Uszkodzona kontrola dostępu
- Udostępnione panele administracyjne
- Luki trawersacji katalogów
- Zapobieganie
- Tropienie błędów logiki aplikacji i uszkodzonej kontroli dostępu
- Krok 1. Poznaj swój cel
- Krok 2. Przechwytuj żądania podczas przeglądania
- Krok 3. Myśl nieszablonowo
- Eskalacja ataku
- Szukanie pierwszego błędu logiki aplikacji lub uszkodzonej kontroli dostępu!
18. Zdalne wykonywanie kodu
- Mechanizmy
- Wstrzyknięcie kodu
- Załączenie pliku
- Zapobieganie
- Tropienie błędów RCE
- Krok 1. Zbierz informacje o celu
- Krok 2. Zidentyfikuj podejrzane lokalizacje wprowadzania danych przez użytkownika
- Krok 3. Prześlij ładunki testowe
- Krok 4. Potwierdź lukę w zabezpieczeniach
- Eskalacja ataku
- Omijanie ochrony przed RCE
- Szukanie pierwszego błędu RCE!
19. Błędy reguły tego samego pochodzenia
- Mechanizmy
- Eksploitacja mechanizmu CORS
- Eksploitacja metody postMessage()
- Eksploitacja JSONP
- Omijanie SOP-u przy użyciu luki XSS
- Tropienie błędów obejścia SOP-u
- Krok 1. Sprawdź stosowanie technik rozluźniania SOP-u
- Krok 2. Znajdź błędną konfigurację CORS-u
- Krok 3. Znajdź błędy postMessage
- Krok 4. Znajdź błędy JSONP
- Krok 5. Rozważ środki zaradcze
- Eskalacja ataku
- Szukanie pierwszego błędu obejścia SOP-u!
20. Kwestie bezpieczeństwa związane z pojedynczym logowaniem
- Mechanizmy
- Współdzielenie plików cookie
- SAML
- OAuth
- Tropienie błędów przejęcia poddomeny
- Krok 1. Zrób listę poddomen celu
- Krok 2. Znajdź niezarejestrowane strony
- Krok 3. Zarejestruj stronę
- Monitorowanie pod kątem przejęcia poddomeny
- Tropienie błędów SAML-a
- Krok 1. Znajdź odpowiedź SAML-a
- Krok 2. Analizuj pola odpowiedzi
- Krok 3. Omiń podpis
- Krok 4. Ponownie zakoduj komunikat
- Tropienie kradzieży tokenów OAuth
- Eskalacja ataku
- Szukanie pierwszego błędu obejścia SSO!
21. Ujawnienie informacji
- Mechanizmy
- Zapobieganie
- Tropienie błędów ujawnienia informacji
- Krok 1. Spróbuj ataku trawersacji ścieżek
- Krok 2. Przeszukaj Wayback Machine
- Krok 3. Przeszukaj strony wklejania i udostępniania tekstu
- Krok 4. Zrekonstruuj kod źródłowy z udostępnionego katalogu .git
- Krok 5. Znajdź informacje w publicznych plikach
- Eskalacja ataku
- Szukanie pierwszego błędu ujawnienia informacji!
Część IV. Techniki zaawansowane
22. Przeprowadzanie inspekcji kodu
- Porównanie testów białej i czarnej skrzynki
- Podejście szybkie: grep jest Twoim najlepszym przyjacielem
- Niebezpieczne wzorce
- Wyciekające sekrety i słabe szyfrowanie
- Nowe poprawki i nieaktualne zależności
- Komentarze programistów
- Funkcjonalności debugowania, pliki konfiguracyjne i punkty końcowe
- Podejście szczegółowe
- Ważne funkcje
- Dane wprowadzone przez użytkownika
- Ćwiczenie - znajdź luki w zabezpieczeniach
23. Hakowanie aplikacji systemu Android
- Konfigurowanie serwera proxy dla urządzeń mobilnych
- Omijanie przypinania certyfikatu
- Anatomia APK
- Narzędzia
- Android Debug Bridge
- Android Studio
- Apktool
- Frida
- Mobile Security Framework
- Tropienie luk w zabezpieczeniach
24. Hakowanie interfejsów API
- Czym są interfejsy API?
- Interfejsy RESTful API
- Interfejsy API SOAP
- Interfejsy GraphQL API
- Aplikacje skoncentrowane na API
- Tropienie błędów API
- Przeprowadzanie rekonesansu
- Testowanie pod kątem uszkodzonej kontroli dostępu i wycieków informacji
- Testowanie pod kątem problemów z ograniczaniem przepustowości
- Testowanie pod kątem błędów technicznych
25. Automatyczne wykrywanie luk w zabezpieczeniach za pomocą fuzzerów
- Czym jest fuzzing?
- Jak działa fuzzer internetowy?
- Proces fuzzingu
- Krok 1. Określ punkty wstrzyknięcia danych
- Krok 2. Wybierz listę ładunków
- Krok 3. Rozpocznij fuzzing
- Krok 4. Monitoruj wyniki
- Fuzzing za pomocą Wfuzza
- Enumeracja ścieżek
- Brute forcing uwierzytelniania
- Testowanie pod kątem typowych luk w zabezpieczeniach sieciowych
- Więcej informacji o Wfuzzie
- Porównanie fuzzingu i analizy statycznej
- Pułapki fuzzingu
- Poszerzanie zestawu narzędzi do zautomatyzowanego testowania
Skorowidz
Kategoria: | Hacking |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-283-9412-4 |
Rozmiar pliku: | 6,4 MB |