290 likes | 439 Views
Bezpieczeństwo aplikacji WWW. Michał Pośnik s 4132 2008. Rodzaje ataków. Cross-Site Scripting. Od strony atakującego. Zasada ataku XSS Rodzaje ataku XSS Reflected XSS Persistent XSS Lokalny atak XSS Proste próby ataku XSS. Reflected XSS.
E N D
Bezpieczeństwo aplikacji WWW Michał Pośnik s4132 2008
Od strony atakującego Zasada ataku XSS Rodzaje ataku XSS • Reflected XSS • Persistent XSS • Lokalny atak XSS Proste próby ataku XSS
Reflected XSS Najczęściej spotykany wśród ataków z serii XSS Trzeba nakłonić ofiarę do odwiedzenia spreparowanego URL Umożliwia dostęp do haseł użytkownika, adresów e-mail, loginów, fraz wpisywanych w search'u
Persistent XSS Także bardzo powszechny atak Nie wymaga nakłaniania ofiary do kliknięcia w URL Za pomocą kodu ukrytego w URL, możemy dostać się do bazy danych Serwer bazodanowy rozsyła szkodliwy kod do użytkowników odwiedzających stronę Raz wstrzyknięty kod pozostaje już na serwerze
Lokalny atak XSS Odbywa się na komputerze ofiary Wykonywane w przeglądarce, za pomocą JavaScript Serwer "dostarcza" w przeglądarce błędny skrypt, a nie złośliwy kod Najczęściej podatne są aplikacje Web 2.0
Proste próby ataku XSS Aby wykonać prosty atak XSS musimy zrobic/znac: Sprawdzenie podatności strony WWW na atak XSS Podstawowa znajomość JavaScript Szczęście
Od strony atakującego Jeden z podstawowych i najczęściej wykorzystywanych ataków w Internecie Wykorzystuje lukę w systemie polegającą na nieprawidłowym filtrowaniu Wszystkie bazy danych są podatne w mniejszym lub większym stopniu na te ataki
Zasada działania Polega na wysłaniu na serwer spreparowanego kodu SQL Dzięki odpowiednim zapytaniom, możemy dostać się do serwera i wykraść dane
Przeprowadzanie ataku Sprawdzamy czy w atakowanej stronie występują luki Jeśli znaleźliśmy takowe, sprawdzamy poprawność działania naszych zapytań Jeśli nie występują błędy, sprawdzamy efekt działania wstrzykniętego kodu Gromadziny dane w celu identyfikacji rodzaju zapytania, rodzaju bazy danych, czy uprzywilejowania użytkownika
Od strony atakującego Ataki HTML Injection, podobnie jak ataki XSS i SQL Injection, polegają na dodawaniu kodu do źródła strony WWW Pozwalają nam modyfikować wygląc strony, oraz jej funkcjonalność W zależności od zapytania, możemy zmienić wygląd strony na stałe
Prostota HTML Injection Znajomość HTMLa, nawet w podstawach, pozwoli nam na wykonanie prostego ataku Wiele stron jest podatnych na tego typu atak Po prawej znajduje się przykładowy kod HTML, który możemy wstrzyknąć w stronę podatną na atak. <a href=http://www.naszserwer.pl><img src=http://jakistamserwerznasztymobrazkiem.pl /> Kliknij na zdjecie, aby je powiekszyc! </a>
Przykład wykorzystania HTML Injection Prosty tag <h1><u> … </u></h1>
Od strony atakującego Często pomijana technika, a także często mieszana jako „podzbiór” ataków XSS Polega na wykorzystaniu przeglądarki ofiary, w celu wysyłania żądań HTTP, bez wiedzy ofiary Umożliwia wykonywanie czynności administratorskich bez konieczności przechwytywania sesji czy łamania haseł Umożliwia wykonanie ataku mimo skonfigurowanego firewalla
Przeprowadzenie ataku CSRF Wystarczy znajomość HTMLa "Podszycie" pod kod HTML jakiegos linka Pozyskiwanie potrzebnych nam informacji
Bezpieczeństwo aplikacji WWW od strony programisty Rzeczy o których należy pamiętać podczas tworzenia zabezpieczeń Znajomość pewnych funkcji PHP może okazać się przydatna. Przykładowe funkcje zabezpieczające
O należy pamiętać? Ustawienie walidacji parametrów wejściowych Wyłączenie opcji zmiennych globalnych Prawidłowa kontrola dostępu Prawidłowa autentykacja i zarządzanie sesjami Prawidłowe zabezpieczenie przed przepełnieniem bufora Prawidłowa obsługa błędów Bezpieczne przechowywanie danych Prawidłowe zabezpieczenie przed atakiem typu DoS Ustawienie funkcji uniemożliwiających wstrzykiwanie kodu