[Bezpieczeństwo] Teoria obejścia SSL w Facebooku
10.04.2011 | aktual.: 10.04.2011 21:05
Witam.
Ostatnio zabrałem się za pisanie sniffera który potrafi zgarnąć login i hasło z ponad 4 najpopularniejszych skryptów forum (phpBB, myBB, vBulletin, IPB), milionów blogów na Wordpressie, dobrychprogramów czy demotywatorów. Czas przyszedł aby rozgryźć Facebooka i jego SSL.
Gdzie może tkwić wada SSL w Facebooku?
Zauważcie, że po wejściu na facebook.com strona domyślnie nie jest szyfrowana a na niej jest formularz logowania.
<form method="POST" action="https://www.facebook.com/login.php login_attempt=1" id="login_form" onsubmit="return Event.__inlineSubmit(this,event)"> <input type="hidden" name="charset_test" value="€,´,€,´,?,?,?" /><input type="hidden" name="lsd" value="Vqkhs" autocomplete="off" /> <input type="hidden" id="locale" name="locale" value="pl_PL" autocomplete="off" /><input type="text" class="inputtext" name="email" id="email" tabindex="1" /> <input type="password" class="inputtext" name="pass" id="pass" tabindex="2" /><input value="Zaloguj się" tabindex="4" type="submit" id="u519277_3" /> <input type="checkbox" class="inputcheckbox" value="1" id="persistent" name="persistent" checked="1" /> <input type="hidden" name="default_persistent" value="1" /> <input type="hidden" name="charset_test" value="€,´,€,´,?,?,?" /><input type="hidden" id="lsd" name="lsd" value="Vqkhs" autocomplete="off" /></form>
Rzecz jasna możliwe jest przechwycenie formularza, można by w nim zastąpić https na http a wtedy logowanie odbywało by się bez SSL.
Co potrzeba by było zrobić?
1. Zesniffować pakiety z formularzem (nie problem) 2. Skleić w sesję TCP (nie problem) 3. Oddzielić nagłówki od skompresowanej treści strony w GZIP (lekki problem) 4. Podmienić treść strony (https na http) 5. Skompresować 6. Podzielić na pakiety tak jak było przedtem (tutaj mógłby wystąpić ewentualny problem) 7. Wysłać
Pytanie do czytelników; Czy według Was to możliwe? To tylko moja teoria.