Nie widzę jakiegoś powalającego zainteresowania przykładami, które udostępniam na bootcamp. Są za proste? W każdym razie czekam, aż ktoś poda rozwiązanie jak w przykładzie z CSRF wykorzystać XSS do automatycznego usunięcia wiadomości. Chodzi o to, by po wysłaniu wiadomości (która jest wypisywana następnie na stronie) przeglądarka klienta sama (oczywiście w wyniku przekazanego kodu) wygenerowała dwa żądania HTTP:
jedno żądanie, które “otwiera” wiadomość, która ma zostać usunięta i ładuje jej identyfikator do sesji,
drugie żądanie, które wysyła polecenie usunięcia wiadomości,
Tak jak pisałem nie jest to do końca “typowe” CSRF, ponieważ “coś” co ma zmusić przeglądarkę do wygenerowania żądań jest osadzone na atakowanej stronie. Kolejny odcinek będzie również o CSRF, ale tym razem na stronie będzie istniał token zabezpieczający. Zadanie będzie również proste, osadzony wrogi kod będzie musiał odczytać token zabezpieczający i przygotować odpowiednie żądanie. Ale to już w kolejnym odcinku, na razie czekam na rozwiązanie dla http://bootcamp.threats.pl/lesson04/.
Kolejna lekcja: Cross Site Request Forgery, na razie tylko przykład. Całość to nieco zmodyfikowana lekcja III, do której wprowadziłem podatność XSS. Poza tym parametr action jest brany obecnie z $POST, a nie $REQUEST (by nie było za łatwo). Zadanie – za pomocą XSS usunąć dowolną wiadomość. Nie jest to do końca “cross site”, bo atak jest z tej samej strony, na której wykonywana jest akcja, ale chodzi o pokazanie, że można zmusić przeglądarkę, by wykonała akcję bez udziału użytkownika.
Nie lubię świąt. Mam kolejny argument – świąteczne wyjazdy/powroty. Z roku na rok jest coraz gorzej. My chcemy Euro 2012??? Już widzę te tabuny uradowanych kibiców piłkarskich “oglądających” mecze w korkach... Drogowych oczywiście.
Jeśli komputer zachowuje się dziwnie, działa niedeterministycznie, zawiesza się to... pora na wiosenne porządki. Takie z użyciem odkurzacza. Komputer to maszyna. Ma to do siebie, że się grzeje, w szczególności zasilacz, procesor, karta graficzna, chipset czy dysk (między “starymi” barracudami można było robić tosty). Urządzenia elektroniczne mają to do siebie, że działają prawidłowo w pewnych zakresach temperatur, dlatego w komputerach można znaleźć radiatory i wentylatory, a wszystko po to, by efektywnie odprowadzać ciepło i utrzymać akceptowalną temperaturę. Jeśli te elementy są zakurzone, nie mogą odprowadzać ciepła w sposób efektywny. A wtedy komputer zaczyna zachowywać się “dziwnie”...
Jednym z efektów ubocznych “znania się na komputerach” jest fakt, że człowiek staje się supportem dla całkiem sporej liczby krewnych i znajomych królika...
Przekazywanie identyfikatorów sesji w URL jest ZŁE (mówiłem o tym w prezentacji o zarządzaniu sesją na spotkaniu OWASP). Sama koncepcja umieszczenia w URL dodatkowej unikalnej informacji już zła nie jest, oczywiście zależy do czego będzie ona wykorzystywana. Zawarcie w URL losowego tokenu powoduje, że atakujący nie będzie w stanie przygotować odpowiedniego URL, co przeprowadzenie kilku typów ataków skutecznie utrudni. Więcej: Improving Security with URL Rewriting.
Kolejne zadanie: należy usunąć wiadomości, dla których opcja usuwania jest niedostępna: http://bootcamp.threats.pl/lesson03/. Trywialne? Fakt, i dlatego fakt stosowania tego typu technik “kontroli dostępu do funkcji” przeraża. Przykład pisany na szybko, ale powinien działać. Można usuwać bez obaw, dla każdej sesji tworzona jest osobna “baza danych” (sqlite, choć to nie jest istotne).
W dniu 23 kwietnia będę prowadził prezentację na XXIV spotkaniu SPIN. Tematem prezentacji będą testy bezpieczeństwa aplikacji internetowych, ale nie tylko.