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.
Mój znajomy poszukuje kogoś, kto podejmie się napisania prostego programu. Program ma służyć jako tłumacz między dwoma urządzeniami podłączanymi do komputera przez porty rs232. Zasada działania ma sprowadzać się do odczytania danych przesyłanych przez pierwsze urządzenie, sprawdzenie “w słowniku” co to urządzenie chce powiedzieć, a następnie przekazanie tego do drugiego urządzenia z wykorzystaniem znanego, zdefiniowanego protokołu. Jeśli ktoś chce podjąć się takiego zlecenia, przekażę namiary w celu uzgodnienia dalszych szczegółów.