Testowanie bezpieczenstwa aplikacji internetowych Receptury, ebooki, fragmenty, helion
[ Pobierz całość w formacie PDF ]
Testowanie bezpieczeñstwa
aplikacji internetowych.
Receptury
Autor: Paco Hope, Ben Walther
T³umaczenie: Rados³aw Meryk
ISBN: 978-83-246-2208-5
Tytu³ orygina³u:
Format: 168x237, stron: 312
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
5
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
|
Spis treści
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
Spis treści
|
7
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
8
|
Spis treści
[ Pobierz całość w formacie PDF ]