Security Lab

Неавторизованный доступ к учетной записи пользователя в Burning Board

Дата публикации:31.05.2002
Всего просмотров:1633
Опасность:
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Описание:

Burning Board - программное обеспечение Web форума разработанное в PHP+MySQL для Windows и Unix.

Уязвимость защиты в программе позволяет нападающему получать доступ к учетной записи пользователя не более чем за 30 попыток перебора. Уязвимость связанна с недостатком в функции randomization, используемой в программе.
Уязвимость обнаружена в WoltLab Burning Board version 1.1.1

Уязвимый код:
В register.php:

---------------------------
$datum = date("s");
mt_srand($datum);
$z = mt_rand();
$db_zugriff->query("INSERT INTO bb".$n."_user_table
$db_zugriff->(username,userpassword,useremail,regemail,groupid, regdate,lastvisit,lastactivity,activation)
$db_zugriff->VALUES $db_zugriff->('$name','$password','$email','$email','$default_group','$time','$time','$time',$z)");
---------------------------

После этого, электронное сообщение будет послано user@mail.dom с URL, который активизирует учетную запись.

Ниже код активации(action.php):
---------------------------
if($action=="activation") {
$result = activat($userid,$code);
if($result == 1) eval ("\$output =
\"".gettemplate("error1")."\";");
if($result == 2) eval ("\$output =
\"".gettemplate("error22")."\";");
if($result == 3) eval ("\$output =
\"".gettemplate("error23")."\";");
if(!$result) {
$user_id = $userid;
eval ("\$output = \"".gettemplate("note21")."\";");
$user_password = getUserPW($userid);
session_register("user_id");
session_register("user_password");
setcookie("user_id", "$user_id", time()+(3600*24*365));
setcookie("user_password", "$user_password",
time()+(3600*24*365));
}
$ride = "main.php?styleid=$styleid$session";
}
---------------------------

Функция activat() генерирует код активации, используя следующий код:
following code:
$datum = date("s");
mt_srand($datum); // This code result only 30 original integer words. $z = mt_rand();

Как отмечено выше, число комбинаций, которых производит этот код не более 30.

 

Ссылки: WBBoard New User Registration Vulnerability