Testowanie bezpieczeństwa aplikacji internetowych. Receptury - ebook
Testowanie bezpieczeństwa aplikacji internetowych. Receptury - ebook
Poznaj i wykorzystaj mechanizmy testowania zabezpieczeń, a nikt nie prześlizgnie się przez Twoją witrynę!
- Jak zainstalować i skonfigurować narzędzia do testowania zabezpieczeń?
- Jak szybko i sprawnie znaleźć problemy w aplikacjach?
- Jak wykorzystywać testy powtarzalne?
Witryny internetowe oraz ich aplikacje stanowią swoistą wirtualną furtkę do wszystkich korporacji i instytucji. Jak zatem zadbać, aby nikt niepożądany nie przedostał się do środka? Co sprawia, że witryna jest naprawdę bezpieczna? I w jaki sposób testować aplikację, aby nie był to proces żmudny i czasochłonny, a raczej sprawny i skuteczny? Oto rozwiązanie -- niniejsza książka zawiera proste receptury, dzięki którym z łatwością znajdziesz luki w aplikacjach, zanim zrobią to różni hakerzy.
Książka "Testowanie bezpieczeństwa aplikacji internetowych. Receptury" to napisany zrozumiałym językiem podręcznik, dzięki któremu szybko poznasz mechanizmy testowania zabezpieczeń. Praktyczne przykłady zawarte w tym przewodniku sprawią, że szybko nauczysz się włączać systemy zabezpieczeń do standardowych procedur kontroli aplikacji. Bez problemu stworzysz testy dotyczące funkcji AJAX, a także przeprowadzisz rozbudowane, wieloetapowe testy podatności na klasyczne problemy: skrypty krzyżowe oraz wstrzykiwanie kodu.
- Bezpieczeństwo oprogramowania
- Instalacja darmowych narzędzi i rozszerzeń
- Kodowanie danych w Internecie
- Manipulowanie danymi wejściowymi
- Fałszowanie informacji przesyłanych w nagłówkach przez przeglądarki
- Przesyłanie na serwer plików o dużej objętości
- Obchodzenie ograniczeń interfejsu użytkownika
- Autoryzacja masowego skanowania
- Ataki przeciwko aplikacjom AJAX
- Manipulowanie sesjami
- Testy wielostronne
Niech bezpieczeństwo Twoich aplikacji nie spędza Ci snu z powiek!
Spis treści
Słowo wstępne (11)
Przedmowa (13)
1. Wprowadzenie (23)
- 1.1. Co to jest testowanie zabezpieczeń? (23)
- 1.2. Czym są aplikacje internetowe? (27)
- 1.3. Podstawowe pojęcia dotyczące aplikacji internetowych (31)
- 1.4. Testowanie zabezpieczeń aplikacji internetowej (36)
- 1.5. Zasadnicze pytanie brzmi: "Jak" (37)
2. Instalacja darmowych narzędzi (41)
- 2.1. Instalacja przeglądarki Firefox (42)
- 2.2. Instalacja rozszerzeń przeglądarki Firefox (42)
- 2.3. Instalacja rozszerzenia Firebug (43)
- 2.4. Instalacja programu WebScarab grupy OWASP (44)
- 2.5. Instalowanie Perla i pakietów w systemie Windows (45)
- 2.6. Instalacja Perla i korzystanie z repozytorium CPAN w systemie Linux (46)
- 2.7. Instalacja narzędzia CAL9000 (47)
- 2.8. Instalacja narzędzia ViewState Decoder (47)
- 2.9. Instalacja cURL (48)
- 2.10. Instalacja narzędzia Pornzilla (49)
- 2.11. Instalacja środowiska Cygwin (49)
- 2.12. Instalacja narzędzia Nikto 2 (51)
- 2.13. Instalacja zestawu narzędzi Burp Suite (52)
- 2.14. Instalacja serwera HTTP Apache (53)
3. Prosta obserwacja (55)
- 3.1. Przeglądanie źródła HTML strony (56)
- 3.2. Zaawansowane przeglądanie kodu źródłowego (58)
- 3.3. Obserwacja nagłówków żądań "na żywo" za pomocą dodatku Firebug (60)
- 3.4. Obserwacja danych POST "na żywo" za pomocą narzędzia WebScarab (64)
- 3.5. Oglądanie ukrytych pól formularza (68)
- 3.6. Obserwacja nagłówków odpowiedzi "na żywo" za pomocą dodatku TamperData (69)
- 3.7. Podświetlanie kodu JavaScript i komentarzy (71)
- 3.8. Wykrywanie zdarzeń JavaScript (73)
- 3.9. Modyfikowanie specyficznych atrybutów elementów (74)
- 3.10. Dynamiczne śledzenie atrybutów elementów (76)
- 3.11. Wnioski (78)
4. Kodowanie danych w internecie (79)
- 4.1. Rozpoznawanie binarnych reprezentacji danych (80)
- 4.2. Korzystanie z danych Base64 (82)
- 4.3. Konwersja liczb zakodowanych w Base36 na stronie WWW (84)
- 4.4. Korzystanie z danych Base36 w Perlu (85)
- 4.5. Wykorzystanie danych kodowanych w URL (85)
- 4.6. Wykorzystywanie danych w formacie encji HTML (88)
- 4.7. Wyliczanie skrótów (89)
- 4.8. Rozpoznawanie formatów czasowych (91)
- 4.9. Programowe kodowanie wartości oznaczających czas (93)
- 4.10. Dekodowanie wartości ViewState języka ASP.NET (94)
- 4.11. Dekodowanie danych zakodowanych wielokrotnie (96)
5. Manipulowanie danymi wejściowymi (99)
- 5.1. Przechwytywanie i modyfikowanie żądań POST (100)
- 5.2. Obejścia ograniczeń pól wejściowych (103)
- 5.3. Modyfikowanie adresu URL (104)
- 5.4. Automatyzacja modyfikowania adresów URL (107)
- 5.5. Testowanie obsługi długich adresów URL (108)
- 5.6. Edycja plików cookie (110)
- 5.7. Fałszowanie informacji przesyłanych przez przeglądarki w nagłówkach (112)
- 5.8. Przesyłanie na serwer plików o złośliwych nazwach (115)
- 5.9. Przesyłanie na serwer plików o dużej objętości (117)
- 5.10. Przesyłanie plików XML o złośliwej zawartości (118)
- 5.11. Przesyłanie plików XML o złośliwej strukturze (120)
- 5.12. Przesyłanie złośliwych plików ZIP (122)
- 5.13. Przesyłanie na serwer przykładowych plików wirusów (123)
- 5.14. Obchodzenie ograniczeń interfejsu użytkownika (124)
6. Automatyzacja masowego skanowania (127)
- 6.1. Przeglądanie serwisu WWW za pomocą programu WebScarab (128)
- 6.2. Przekształcanie wyników działania programów typu pająk do postaci listy inwentaryzacyjnej (130)
- 6.3. Redukowanie listy adresów URL do testowania (133)
- 6.4. Wykorzystanie arkusza kalkulacyjnego do redukcji listy (134)
- 6.5. Tworzenie kopii lustrzanej serwisu WWW za pomocą programu LWP (134)
- 6.6. Tworzenie kopii lustrzanej serwisu WWW za pomocą polecenia wget (136)
- 6.7. Tworzenie kopii lustrzanej specyficznych elementów za pomocą polecenia wget (138)
- 6.8. Skanowanie serwisu WWW za pomocą programu Nikto (138)
- 6.9. Interpretacja wyników programu Nikto (140)
- 6.10. Skanowanie serwisów HTTPS za pomocą programu Nikto (142)
- 6.11. Używanie programu Nikto z uwierzytelnianiem (143)
- 6.12. Uruchamianie Nikto w określonym punkcie startowym (144)
- 6.13. Wykorzystywanie specyficznego pliku cookie sesji z programem Nikto (145)
- 6.14. Testowanie usług sieciowych za pomocą programu WSFuzzer (146)
- 6.15. Interpretacja wyników programu WSFuzzer (148)
7. Automatyzacja wybranych zadań z wykorzystaniem cURL (151)
- 7.1. Pobieranie strony za pomocą cURL (152)
- 7.2. Pobieranie wielu odmian strony spod adresu URL (153)
- 7.3. Automatyczne śledzenie przekierowań (154)
- 7.4. Wykorzystanie cURL do testowania podatności na ataki za pomocą skryptów krzyżowych (155)
- 7.5. Wykorzystanie cURL do testowania podatności na ataki typu "przechodzenie przez katalog" (158)
- 7.6. Naśladowanie specyficznego typu przeglądarki lub urządzenia (161)
- 7.7. Interaktywne naśladowanie innego urządzenia (162)
- 7.8. Imitowanie wyszukiwarki za pomocą cURL (165)
- 7.9. Pozorowanie przepływu poprzez fałszowanie nagłówków referer (166)
- 7.10. Pobieranie samych nagłówków HTTP (167)
- 7.11. Symulacja żądań POST za pomocą cURL (168)
- 7.12. Utrzymywanie stanu sesji (169)
- 7.13. Modyfikowanie plików cookie (171)
- 7.14. Przesyłanie pliku na serwer za pomocą cURL (171)
- 7.15. Tworzenie wieloetapowego przypadku testowego (172)
- 7.16. Wnioski (177)
8. Automatyzacja zadań z wykorzystaniem biblioteki LibWWWPerl (179)
- 8.1. Napisanie prostego skryptu Perla do pobierania strony (180)
- 8.2. Programowe modyfikowanie parametrów (181)
- 8.3. Symulacja wprowadzania danych za pośrednictwem formularzy z wykorzystaniem żądań POST (183)
- 8.4. Przechwytywanie i zapisywanie plików cookie (184)
- 8.5. Sprawdzanie ważności sesji (185)
- 8.6. Testowanie podatności na wymuszenia sesji (188)
- 8.7. Wysyłanie złośliwych wartości w plikach cookie (190)
- 8.8. Przesyłanie na serwer złośliwej zawartości plików (192)
- 8.9. Przesyłanie na serwer plików o złośliwych nazwach (193)
- 8.10. Przesyłanie wirusów do aplikacji (195)
- 8.11. Parsowanie odpowiedzi za pomocą skryptu Perla w celu sprawdzenia odczytanych wartości (197)
- 8.12. Programowa edycja strony (198)
- 8.13. Wykorzystanie wątków do poprawy wydajności (200)
9. Wyszukiwanie wad projektu (203)
- 9.1. Pomijanie obowiązkowych elementów nawigacji (204)
- 9.2. Próby wykonywania uprzywilejowanych operacji (206)
- 9.3. Nadużywanie mechanizmu odzyskiwania haseł (207)
- 9.4. Nadużywanie łatwych do odgadnięcia identyfikatorów (209)
- 9.5. Odgadywanie danych do uwierzytelniania (211)
- 9.6. Wyszukiwanie liczb losowych w aplikacji (213)
- 9.7. Testowanie liczb losowych (215)
- 9.8. Nadużywanie powtarzalności (217)
- 9.9. Nadużywanie operacji powodujących duże obciążenia (219)
- 9.10. Nadużywanie funkcji ograniczających dostęp do aplikacji (221)
- 9.11. Nadużywanie sytuacji wyścigu (222)
10. Ataki przeciwko aplikacjom AJAX (225)
- 10.1. Obserwacja żądań AJAX "na żywo" (227)
- 10.2. Identyfikacja kodu JavaScript w aplikacjach (228)
- 10.3. Śledzenie operacji AJAX do poziomu kodu źródłowego (229)
- 10.4. Przechwytywanie i modyfikowanie żądań AJAX (230)
- 10.5. Przechwytywanie i modyfikowanie odpowiedzi serwera (232)
- 10.6. Wstrzykiwanie danych do aplikacji AJAX (234)
- 10.7. Wstrzykiwanie danych w formacie XML do aplikacji AJAX (236)
- 10.8. Wstrzykiwanie danych w formacie JSON do aplikacji AJAX (237)
- 10.9. Modyfikowanie stanu klienta (239)
- 10.10. Sprawdzenie możliwości dostępu z innych domen (240)
- 10.11. Odczytywanie prywatnych danych dzięki przechwytywaniu danych JSON (241)
11. Manipulowanie sesjami (245)
- 11.1. Wyszukiwanie identyfikatorów sesji w plikach cookie (246)
- 11.2. Wyszukiwanie identyfikatorów sesji w żądaniach (248)
- 11.3. Wyszukiwanie nagłówków autoryzacji (249)
- 11.4. Analiza terminu ważności sesji (252)
- 11.5. Analiza identyfikatorów sesji za pomocą programu Burp (256)
- 11.6. Analiza losowości sesji za pomocą programu WebScarab (258)
- 11.7. Zmiany sesji w celu uniknięcia ograniczeń (262)
- 11.8. Podszywanie się pod innego użytkownika (264)
- 11.9. Preparowanie sesji (265)
- 11.10. Testowanie pod kątem podatności na ataki CSRF (266)
12. Testy wielostronne (269)
- 12.1. Wykradanie plików cookie za pomocą ataków XSS (269)
- 12.2. Tworzenie nakładek za pomocą ataków XSS (271)
- 12.3. Tworzenie żądań HTTP za pomocą ataków XSS (273)
- 12.4. Interaktywne wykonywanie ataków XSS bazujących na modelu DOM (274)
- 12.5. Pomijanie ograniczeń długości pola (XSS) (276)
- 12.6. Interaktywne przeprowadzanie ataków XST (277)
- 12.7. Modyfikowanie nagłówka Host (279)
- 12.8. Odgadywanie nazw użytkowników i haseł metodą siłową (281)
- 12.9. Interaktywne przeprowadzanie ataków wstrzykiwania kodu w instrukcji włączania skryptów PHP (283)
- 12.10. Tworzenie bomb dekompresji (285)
- 12.11. Interaktywne przeprowadzanie ataków wstrzykiwania poleceń systemu operacyjnego (286)
- 12.12. Systemowe przeprowadzanie ataków wstrzykiwania poleceń systemu operacyjnego (288)
- 12.13. Interaktywne przeprowadzanie ataków wstrzykiwania instrukcji XPath (291)
- 12.14. Interaktywne przeprowadzanie ataków wstrzykiwania SSI (293)
- 12.15. Systemowe przeprowadzanie ataków wstrzykiwania SSI (294)
- 12.16. Interaktywne przeprowadzanie ataków wstrzykiwania LDAP (296)
- 12.17. Interaktywne przeprowadzanie ataków wstrzykiwania zapisów w dziennikach (298)
Skorowidz (301)
Kategoria: | Hacking |
Zabezpieczenie: |
Watermark
|
ISBN: | 978-83-246-5864-0 |
Rozmiar pliku: | 5,3 MB |