Уязвимость в восстановлении пароля
Нужно
лишь отправить запрос на сброс пароля
и подобрать код, который генерируется
следующим нехитрым образом:
1 |
$key
=
md5($login.rand(1, 250));
|
Именно
эту уязвимость использовало большинство
участников конкурса.
Слабые сессии
class/Auth.php
1 2 3 4 5 6 7 8 9 10 11 12
|
private
function
getSpecialHash($password)
{ $hash
=
sprintf("%u", crc32($password)); if(strlen($hash)
> 4) { $hash
=
substr($hash, 0, 4); } if(strlen($hash)
< 4) { while(strlen($hash)
< 4) { $hash
.=
"1"; } } return
$hash; } |
У
некоторых пользователей, для которых
в БД поле type соответствует значению
«contractor», можно подобрать сессию, так
как hash состоит лишь из 4 символов, т.е.
требуется всего лишь 10 тысяч запросов.