Сайтът за евростипендиите

Тези дни се регистрирах в сайта за евростипендиите за студенти от приоритетни специалности и видях две неща, които не би трябвало да съществуват в съвременния интернет.

На първата страница на сайта веднага се забелязва хубавият голям бутон за започване на SSL връзка. И ако го натиснете, ще установите, че дори са платили на GeoTrust за EV сертификат. Прекрасно. Но не разбирам защо криптираната връзка не се използва по подразбиране. Нещо повече - дори при вход в системата и попълването на формулярите с лични данни всичко минава по мрежата в чист вид.

Да не говорим колко има да се желае от SSL/TLS конфигурацията на уеб сървъра. Поддържа SSLv3, за който се знае, че е уязвим от 2014 година насам. Освен това използва стандартните Diffie-Helman primes. Дори да не разбирате в подробности уязвимостите (признавам си, че и аз не съм запознат с математиката зад тях), едни добри хора периодично издават книга, в която е описано кои шифри и версии на TLS протокола се считат за сигурни в момента. В нея има и конфигурации за голяма част от софтуера, които просто трябва да се копират.

Още по-притеснително е, че паролите се пазят в базата данни в нехеширан вид. Заподозрях нещо подобно, когато видях ограничението за максимална дължина на паролата от 20 символа. Изходът на хеш функциите, които се използват за сигурно съхранение на пароли, има фиксирана дължина и съответно размерът на входните данни няма значение. За да потвърдя съмненията си използвах функционалността за възстановяване на забравена парола и разбира се, я получих в чист вид по имейл…

При опита на един колега да се регистрира забелязахме интересен проблем - въвеждането на парола със странни символи (“[;NfO~lnE0wrUh.6CL6” в конкретния случай) води до грешка, че факултетният му номер е твърде кратък. При използване на по-проста парола такъв проблем нямаше. Виждам два варианта - или това някъде обърква проверките за стойностите на полетата, или влиза unescaped в SQL заявките и грешката идва от базата данни. Докато първото се преживява, второто е сериозна уязвимост, с която могат да се извлекат нехешираните пароли от предходния параграф.

Красиво, нали? :)

Допълнение към първоначалния пост

Заиграх се с регистрирането на нови потребители, което става с ЕГН и факултетен номер. Въвеждането на тези данни за вече регистриран потребител не води до грешка, а отново до формата за регистрация с полета за имейл и парола… А попълването на тази форма води до смяна на паролата на съществуващия профил в сайта и успешен вход с нея. Опцията за смяна на парола в панела очакваше не текущата такава (зададена чрез този бъг), а редовно въведената при първоначалната регистрация…. Нямам думи.