Расшифровка логина и пароля в cookie pmaUser-1 и pmaPass-1
Когда вход в phpMyAdmin осуществляется через ISPManager, сервер возвращает такие заголовки:
Можно подставить эти cookie себе и успешно зайти в phpMyAdmin, но это неудобно, так как cookie могут умереть.
Сам файл отвечающий за эти cookie находится по пути /libraries/auth/cookie.auth.lib.php:
Функция PMA_get_blowfish_secret() ищет соль в конфиге phpMyAdmin.
В том же файле есть такие строки:
Далее сам вывод:
Алгоритм эксплуатации:
1) Перехватываем cookie (XSS, memory leak и т.д.)
2) Вставляем cookie pmaUser-1 и несколько раз обновляем страницу авторизации, получаем расшифрованный логин
3) Меняем значение cookie pmaUser-1 на значение из перехваченного pmaPass-1 и несколько раз обновляем страницу авторизации, получаем расшифрованный пароль
В посте представлены исходники phpMyAdmin 3.5.0, соответственно, тестировалось тоже на нем. Но думаю это есть во многих версиях, если но во всех. В роли генератора выступил ISPManager 4 Lite.
P.S. В google не нашел как их расшифровать, видимо информация пока неизвестная или слишком очевидная. Уязвимостью это назвать сложно, так как эти cookie сначала надо перехватить.
(c) Ereee
Когда вход в phpMyAdmin осуществляется через ISPManager, сервер возвращает такие заголовки:
Код:
Set-Cookie:pmaPass-1=WwazS5W8AMLiKAjA%2FGglKg%3D%3D; path=/phpmyadmin/; httponly
Set-Cookie:pmaUser-1=4LIGuDEVD8XTNAQOvaGeCg%3D%3D; expires=Thu, 07-Apr-2016 17:50:34
Сам файл отвечающий за эти cookie находится по пути /libraries/auth/cookie.auth.lib.php:
PHP:
$GLOBALS['PHP_AUTH_PW'] = PMA_blowfish_decrypt($_COOKIE['pmaPass-' . $GLOBALS['server']],PMA_get_blowfish_secret());
В том же файле есть такие строки:
PHP:
if ($GLOBALS['cfg']['LoginCookieRecall'] && !empty($GLOBALS['cfg']['blowfish_secret'])) {
$default_user = $GLOBALS['PHP_AUTH_USER'];
$default_server = $GLOBALS['pma_auth_server'];
$autocomplete = '';
}
PHP:
<input type="text" name="pma_username" id="input_username" value="<?php echo htmlspecialchars($default_user); ?>" size="24" class="textfield"/>
Алгоритм эксплуатации:
1) Перехватываем cookie (XSS, memory leak и т.д.)
2) Вставляем cookie pmaUser-1 и несколько раз обновляем страницу авторизации, получаем расшифрованный логин
3) Меняем значение cookie pmaUser-1 на значение из перехваченного pmaPass-1 и несколько раз обновляем страницу авторизации, получаем расшифрованный пароль
В посте представлены исходники phpMyAdmin 3.5.0, соответственно, тестировалось тоже на нем. Но думаю это есть во многих версиях, если но во всех. В роли генератора выступил ISPManager 4 Lite.
P.S. В google не нашел как их расшифровать, видимо информация пока неизвестная или слишком очевидная. Уязвимостью это назвать сложно, так как эти cookie сначала надо перехватить.
(c) Ereee