Dostęp do internetu ma więcej osób niż kiedykolwiek wcześniej. To skłoniło wiele organizacji do opracowania aplikacji internetowych, których użytkownicy mogą używać online do interakcji z organizacją. Źle napisany kod aplikacji internetowych może zostać wykorzystany do uzyskania nieautoryzowanego dostępu do wrażliwych danych i serwerów WWW.
W tym samouczku dowiesz się, jak hakować strony internetowe, a także przedstawimy techniki hakowania aplikacji internetowych oraz środki zaradcze, które możesz zastosować, aby chronić się przed takimi atakami .
Tematy omówione w tym samouczku
- Co to jest aplikacja internetowa? Co to są zagrożenia internetowe?
- Jak chronić swoją witrynę przed włamaniami?
- Sztuczki hakerskie: zhakuj witrynę internetową!
Co to jest aplikacja internetowa? Co to są zagrożenia internetowe?
Aplikacja internetowa (inaczej strona internetowa) to aplikacja oparta na modelu klient-serwer. Serwer zapewnia dostęp do bazy danych i logikę biznesową. Jest hostowany na serwerze internetowym. Aplikacja kliencka działa w przeglądarce internetowej klienta. Aplikacje internetowe są zwykle pisane w językach takich jak Java, C # i VB.Net, PHP, ColdFusion Markup Language itp. Silniki baz danych używane w aplikacjach internetowych obejmują MySQL, MS SQL Server, PostgreSQL, SQLite itp.
Większość aplikacji internetowych znajduje się na serwerach publicznych dostępnych przez Internet. To sprawia, że są podatne na ataki ze względu na łatwą dostępność. Poniżej przedstawiono typowe zagrożenia związane z aplikacjami internetowymi.
- SQL Injection - celem tego zagrożenia może być ominięcie algorytmów logowania, sabotowanie danych itp.
- Ataki typu „odmowa usługi” - celem tego zagrożenia może być uniemożliwienie uprawnionym użytkownikom dostępu do zasobu
- Cross Site Scripting XSS - celem tego zagrożenia może być wstrzyknięcie kodu, który można wykonać w przeglądarce po stronie klienta.
- Cookie / Session Poisoning - celem tego zagrożenia jest modyfikacja plików cookie / danych sesji przez atakującego w celu uzyskania nieautoryzowanego dostępu.
- Manipulowanie formularzami - celem tego zagrożenia jest modyfikacja danych formularzy, takich jak ceny w aplikacjach e-commerce, tak aby atakujący mógł uzyskać przedmioty po obniżonych cenach.
- Code Injection - celem tego zagrożenia jest wstrzyknięcie kodu takiego jak PHP, Python itp., Który można uruchomić na serwerze. Kod może instalować backdoory, ujawniać poufne informacje itp.
- Defacement - celem tego zagrożenia jest modyfikacja strony wyświetlanej w serwisie WWW i przekierowanie wszystkich żądań stron na pojedynczą stronę zawierającą wiadomość atakującego.
Jak chronić swoją witrynę przed włamaniami?
Organizacja może przyjąć następujące zasady, aby chronić się przed atakami na serwer WWW.
- SQL Injection - oczyszczanie i walidacja parametrów użytkownika przed przesłaniem ich do bazy danych w celu przetworzenia może pomóc zmniejszyć ryzyko ataku przez SQL Injection. Silniki bazodanowe takie jak MS SQL Server, MySQL itp. Obsługują parametry i przygotowane zestawienia. Są znacznie bezpieczniejsze niż tradycyjne instrukcje SQL
- Ataki typu „odmowa usługi” - zapory sieciowe mogą być używane do odrzucania ruchu z podejrzanego adresu IP, jeśli atak jest prostym atakiem typu DoS. Odpowiednia konfiguracja sieci i systemu wykrywania włamań może również pomóc zmniejszyć szanse powodzenia ataku DoS.
- Cross Site Scripting - sprawdzanie poprawności i oczyszczanie nagłówków, parametrów przekazywanych za pośrednictwem adresu URL, parametrów formularza i ukrytych wartości może pomóc w ograniczeniu ataków XSS.
- Cookie / Session Poisoning - można temu zapobiec poprzez zaszyfrowanie zawartości plików cookie, przekroczenie limitu czasu plików cookie po pewnym czasie, powiązanie plików cookie z adresem IP klienta, który został użyty do ich utworzenia.
- Hartowanie formy - można temu zapobiec poprzez walidację i weryfikację danych wejściowych użytkownika przed ich przetworzeniem.
- Wstrzyknięcie kodu - można temu zapobiec, traktując wszystkie parametry jako dane, a nie jako kod wykonywalny. Aby to zaimplementować, można użyć funkcji dezynfekcji i walidacji.
- Defacement - dobra polityka bezpieczeństwa tworzenia aplikacji internetowych powinna zapewniać, że zabezpiecza ona powszechnie używane luki w dostępie do serwera WWW. Może to być odpowiednia konfiguracja systemu operacyjnego, oprogramowania serwera WWW i najlepszych praktyk bezpieczeństwa podczas tworzenia aplikacji internetowych.
Sztuczki hakerskie: hakowanie witryny internetowej
W tym praktycznym scenariuszu hakowania witryny zamierzamy przejąć sesję użytkownika aplikacji internetowej znajdującej się pod adresem www.techpanda.org. Będziemy używać skryptów między witrynami, aby odczytać identyfikator sesji pliku cookie, a następnie użyć go do podszywania się pod legalną sesję użytkownika.
Przyjęto założenie, że atakujący ma dostęp do aplikacji internetowej i chciałby przejąć sesje innych użytkowników korzystających z tej samej aplikacji. Celem tego ataku może być uzyskanie dostępu administratora do aplikacji internetowej, przy założeniu, że konto dostępu atakującego jest ograniczone.
Pierwsze kroki
- Otwórz http://www.techpanda.org/
- Ze względów praktycznych zdecydowanie zaleca się uzyskanie dostępu za pomocą SQL Injection. Więcej informacji o tym, jak to zrobić, znajdziesz w tym artykule.
- Adres e-mail logowania to Ten adres e-mail jest chroniony przed robotami spamującymi. Aby go zobaczyć, konieczne jest włączenie obsługi JavaScript., Hasło to Password2010
- Jeśli zalogowałeś się pomyślnie, otrzymasz następujący pulpit nawigacyjny
- Kliknij Dodaj nowy kontakt
- Wpisz następujące imię jako imię
TUTAJ,
Powyższy kod wykorzystuje JavaScript . Dodaje hiperłącze do zdarzenia onclick . Gdy niczego niepodejrzewający użytkownik kliknie odsyłacz, zdarzenie pobiera identyfikator sesji pliku cookie PHP i wysyła go na stronę snatch_sess_id.php wraz z identyfikatorem sesji w adresie URL
- Wprowadź pozostałe szczegóły, jak pokazano poniżej
- Kliknij Zapisz zmiany
- Twój pulpit nawigacyjny będzie teraz wyglądał jak poniższy ekran
- Ponieważ kod skryptu między witrynami jest przechowywany w bazie danych, będzie ładowany za każdym razem, gdy użytkownicy z prawami dostępu będą się logować
- Załóżmy, że administrator loguje się i klika hiperłącze z napisem Dark
- Otrzyma okno z identyfikatorem sesji pokazanym w adresie URL
Uwaga : skrypt może wysyłać wartość do jakiegoś zdalnego serwera, na którym przechowywany jest PHPSESSID, a następnie użytkownik przekierowywany z powrotem do witryny internetowej, jakby nic się nie stało.
Uwaga : uzyskana wartość może różnić się od wartości podanej w tym samouczku dotyczącym hakowania stron internetowych, ale koncepcja jest taka sama
Personifikacja sesji przy użyciu przeglądarki Firefox i dodatku Tamper Data
Poniższy schemat blokowy przedstawia kroki, które należy wykonać, aby wykonać to ćwiczenie.
- W tej sekcji będziesz potrzebować przeglądarki internetowej Firefox i dodatku Tamper Data
- Otwórz przeglądarkę Firefox i zainstaluj dodatek, jak pokazano na poniższych diagramach
- Wyszukaj dane dotyczące sabotażu, a następnie kliknij Instaluj, jak pokazano powyżej
- Kliknij Zaakceptuj i zainstaluj…
- Kliknij Uruchom ponownie teraz po zakończeniu instalacji
- Włącz pasek menu w przeglądarce Firefox, jeśli nie jest wyświetlany
- Kliknij menu narzędzi, a następnie wybierz opcję Sabotaż danych, jak pokazano poniżej
- Otrzymasz następujące okno. Uwaga: jeśli system Windows nie jest pusty, naciśnij przycisk czyszczenia
- Kliknij menu Start Tamper
- Wróć do przeglądarki internetowej Firefox, wpisz http://www.techpanda.org/dashboard.php, a następnie naciśnij klawisz Enter, aby załadować stronę
- Pojawi się następujące wyskakujące okienko z danymi dotyczącymi manipulacji
- Wyskakujące okienko ma trzy (3) opcje. Opcja Tamper umożliwia modyfikację informacji nagłówka HTTP przed przesłaniem ich na serwer .
- Kliknij na to
- Pojawi się następujące okno
- Skopiuj identyfikator sesji PHP skopiowany z adresu URL ataku i wklej go po znaku równości. Twoja wartość powinna teraz wyglądać tak
PHPSESSID = 2DVLTIPP2N8LDBN11B2RA76LM2
- Kliknij przycisk OK
- Ponownie pojawi się wyskakujące okienko danych sabotażu
- Odznacz pole wyboru z pytaniem Kontynuować manipulowanie?
- Po zakończeniu kliknij przycisk przesyłania
- Pulpit nawigacyjny powinien być widoczny, jak pokazano poniżej
Uwaga : nie zalogowaliśmy się, podszyliśmy się pod sesję logowania, używając wartości PHPSESSID, którą pobraliśmy przy użyciu skryptów między witrynami
Podsumowanie
- Aplikacja internetowa jest oparta na modelu serwer-klient. Strona klienta korzysta z przeglądarki internetowej, aby uzyskać dostęp do zasobów na serwerze.
- Aplikacje internetowe są zwykle dostępne przez Internet. To czyni je podatnymi na ataki.
- Zagrożenia związane z aplikacjami internetowymi obejmują SQL Injection, Code Injection, XSS, Defacement, Cookie Poisoning itp.
- Dobra polityka bezpieczeństwa podczas tworzenia aplikacji internetowych może pomóc w ich zabezpieczeniu.