![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 56 Pomógł: 4 Dołączył: 18.01.2012 Ostrzeżenie: (0%) ![]() ![]() |
Cześć.
Pewnie większość z Was kojarzy metody logowania na stronach banków. Jest to wykonane w ten sposób, że musimy podać tylko kilka znaków naszego hasła (reszta jest zablokowana, tak jakby już były wpisane). Zastanawiam się w jaki sposób to działa. Zakładam, że hasła są hashowane, więc w jaki sposób porónywane są ciągi, skoro są niekompletne. Nie jest chyba możliwe, że system wie jakie znaki hasła mamy pod daną cyferką (widoczne na obrazku) i uzupełnia ciąg do porównania z hashem. Do tego "szare" pola są generowane losowo. Interesuje mnie zasada działania, nie proszę o żaden gotowy kod etc. Pozdrawiam. (IMG:style_emoticons/default/smile.gif) Wspomniany obrazek: (IMG:http://i.imgur.com/Dbb16Z6.png) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 527 Pomógł: 438 Dołączył: 28.06.2011 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Włączę się bo widzę pewną potencjalną lukę. Przy takich założeniach gdzie mamy pojedyncze literki hashowane oddzielnie dość łatwo jest wyciągnąć hasła wszystkich userów.
Założenia: 1. Literki są hashowane i solone tym samym ciągiem (ciąg na sztywno w kodzie) 2. Na wstępie mamy bazę powiedzmy 1000 userów z różnymi hasłami - bierzemy wszystkie możliwości hashu literek (unikalne - maks liczba = liczbie znaków w alfabecie hasła) 3. Dla każdej możliwości bruteforcem jedziemy i szukamy literki tworząc hashe ze znaną solą, 4. Mamy tablice (hash => literka) - prosty skrypt i mamy tysiąc haseł (IMG:style_emoticons/default/smile.gif) Czas realizacji po włamie na serwer i ściągnięciu danych wg mnie: manualnie: ~1h, automatycznie (skrypt): 5minut? Warto zauważyć że jak raz się skapniemy jak dodawany jest do literki salt to potem już jest błyskawicznie... Więc taka opcja odpada na bank (chyba, że o czymś zapomniałem). Wynika mi z tego, że każda literka powinna mieć różne sole, bądź rózni userzy różne sole. Wydaje mi się jednak, że to jedynie nieco spowolni proces bo sól danego usera musi być gdzieś zapisana/generowana a z tego wynika, że dla konkretnego gościa musimy jedynie przelecieć wszystkie literki z tą solą i i tak odzyskać hasło. Można napisać skrypt który ogarnie to w dość szybkim czasie dla każdego z userów osobno. Co wy na to? Czy o czymś zapominam czy to jednak totalna bzdura? Dla porównania bruteforce na normalnej długości haśle, nawet posiadając sól już nie potrwa tak krótko... |
|
|
![]() ![]() |
![]() |
Aktualny czas: 5.10.2025 - 08:18 |