Обход авторизации в Western Digital My Cloud

303
484
7 Июн 2016
Уязвимость обхода аутентификации была обнаружена в версии программного обеспечения Western Digital My Cloud 2.11.153. Western Digital My Cloud — это одно из самых простых и недорогих решений по созданию домашнего сервера для удалённого доступа к данным.

При обходе аутентификации злоумышленник получал административный доступ к веб-интерфейсу My Cloud. Фактически – это полный контроль над устройством.

Функция login_check(), которая должна проверять залогинен ли пользователь, проверяет только наличие кук обычного пользователя(username) и администратора(isAdmin).

Злоумышленнику достаточно изменить значения на пользователя и администратора на единицу.

Пример эксплуатации

username=1; isAdmin=1

Далее обратиться к одной из страниц, например, к php/users.php.

Ниже представлен уязвимый фрагмент кода, который находится в файле /web/lib/login_checker.php:

function login_check() { $ret = 0; if (isset($_SESSION['username'])) { if (isset($_SESSION['username']) && $_SESSION['username'] != "") $ret = 2; //login, normal user if ($_SESSION['isAdmin'] == 1) $ret = 1; //login, admin } else if (isset($_COOKIE['username'])) { if (isset($_COOKIE['username']) && $_COOKIE['username'] != "") $ret = 2; //login, normal user if ($_COOKIE['isAdmin'] == 1) $ret = 1; //login, admin } return $ret; }

Эта уязвимость была успешно проверена на модели WDBCTL0020HWT Western Digital My Cloud под управлением встроенного программного обеспечения версии 2.11.153.

Даже в таких крупных компаниях, как Western Digital, никто не застрахован от ошибок при проектировании или написании веб-приложений. Только комплексный подход при обеспечении безопасности, включая решения по защите веб приложений помогут избежать рисков взлома ресурса со всеми вытекающими из этого последствиями.