Artykuły na każdy temat

Luka w panelu klienta LinuxPL.com

Dodano 09.01.2011r. o 06:27
W sumie to dość banalny błąd. Najpierw source, a potem objaśnienie Wink
Kod:
<?php
// Kod został wycięty z powodu dojścia do porozumienia miedzy stronami
?>
Jak widać kod jest prosty jak drut, a może wyrządzić dość nie chude szkody. Funkcje set_time_limit(), chyba każdy programista PHP zna i wie do czego służy. Gdyby lista e-maili i/lub loginów była długa, no to wiadomo, że skrypt przekroczyłby limit wykonywania. Dalej ustawiamy lokalizacje, gdzie ma znajdować się ciasteczko. Poniżej tego mamy ładowanie danych do tablicy. Oczywiście ja nie posiadam takiej bazy danych jednak z łatwością można ją zdobyć przez zripowanie loginów i e-maili (o ile ktoś podał) z tzw. memberlist na forach webmasterskich typu webhostingtalk.pl, forum.optymalizacja.com, forum.php.pl, forum.webhelp.pl, forumweb.pl. Jeżeli choć jedna baza danych z wyżej wymienionych for dyskusyjnych wyciekłaby, to szkody byłyby znacznie większe, gdyż posiadalibyśmy pełną listę mailingową. Dalej mamy pobieranie i zapisywanie ciasteczka. Bez wypieku nie "przypomnimy" sobie hasełka. Super mocne zabezpieczenie ;)

Część kulminacyjna, czyli pętelka. Deklarujemy sobie adresik do wysłania żądania. W parametrze GET wkładamy mail albo login i "kodujemy" do formatu URL. Dalej to już formalność. Ciasteczko i voila! Funkcja sleep(), została umieszczona po to, aby request nie szedł jeden za drugim za szybko. Przy braku limitu maile nie dochodziły ;) Dałem 3 sekundy miedzy requestami, choć uważam, że jedna lub dwie sekundy starczy.

Demo



Podstawowe błędy

Point Brak zabezpieczenia antyfloodowego
Point Brak np. captchy lub innego mechanizmu sprawdzającego, czy to nie robot wysyła zapytania
Point Brak linku potwierdzającego, że faktycznie właściciel konta chce zresetować hasło

Powinno znajdować się tam zabezpieczenie limitujące (per IP?) częstotliwość i ilość wysyłanych requestów. Uniemożliwi to potencjalnym osobom na wykonanie ataku podchodzącego nawet pod DoS. Drugą sprawą jest fakt, że nie zostanie zanotowany chaos komunikacyjny.

Nota do refleksji:
"Nie można przełamać czegoś, co nie istnieje" - sygn. akt VI K 849/07

Problematyka

Nie miałem na celu atakowanie firmy, tylko wywołanie określonych reakcji (dyskusji) w sprawie blogera posługującego się nickiem @kubofonista. Cała sprawa została opisana na jego blogu we wpisie O tym jak LinuxPL.com mnie załatwił. Dyskusja wywiązała się w komentarzach w wyżej wymienionym wpisie oraz na forum webhostingtalk.pl (watek z opiniami na temat hostingu LinuxPL).

Napisali o nas oraz inne linki

Żeby się nie powtarzać, to powiem tylko, że resztę informacji znajdziecie tutaj:

Komentarze

Publikowane komentarze są prywatnymi opiniami użytkowników serwisu. Serwis nie ponosi odpowiedzialności za treść opinii. W trosce o zachowanie poziomu dyskusji wszystkie komentarze podlegają akceptacji przed ich publikacją dlatego proszę cierpliwie czekać aż komentarz zostanie opublikowany.

Drraven

Dodano 10.01.2011r. o 16:02
A miałem u nich hosting zamówić. Zostaje mi unixstrom, proserwer, i liberalhost.

Dodaj komentarz

Zostaw komentarz jeżeli możesz! Nie bądź przysłowiowym botem! Nie bądź obojętny! Ciebie to nic nie kosztuje, a mi sprawi uśmiech na twarzy.
Zezwolono używać: BBCode
Zabroniono używać:
znaczników HTML

(Wymagany)

(Wymagany, niepublikowany)

(Nie wymagana)

Token:

Obrazek dla bota

(Przepisz tylko cyfry!)

(Wymagana)