Показать сообщение отдельно

  #10  
Старый 08.02.2019, 08:53
Ereee
Постоянный
Регистрация: 01.12.2011
Сообщений: 560
С нами: 7604246

Репутация: 267


По умолчанию

Расшифровка логина и пароля в cookie pmaUser-1 и pmaPass-1

Когда вход в 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 себе и успешно зайти в phpMyAdmin, но это неудобно, так как cookie могут умереть.

Сам файл отвечающий за эти cookie находится по пути /libraries/auth/cookie.auth.lib.php:

PHP код:
[COLOR="#000000"][COLOR="#0000BB"]$GLOBALS[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'PHP_AUTH_PW'[/COLOR][COLOR="#007700"]] =[/COLOR][COLOR="#0000BB"]PMA_blowfish_decrypt[/COLOR][COLOR="#007700"]([/COLOR][COLOR="#0000BB"]$_COOKIE[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'pmaPass-'[/COLOR][COLOR="#007700"].[/COLOR][COLOR="#0000BB"]$GLOBALS[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'server'[/COLOR][COLOR="#007700"]]],[/COLOR][COLOR="#0000BB"]PMA_get_blowfish_secret[/COLOR][COLOR="#007700"]());
[/
COLOR][/COLOR
Функция PMA_get_blowfish_secret() ищет соль в конфиге phpMyAdmin.

В том же файле есть такие строки:

PHP код:
[COLOR="#000000"][COLOR="#0000BB"][/COLOR][COLOR="#007700"]if ([/COLOR][COLOR="#0000BB"]$GLOBALS[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'cfg'[/COLOR][COLOR="#007700"]][[/COLOR][COLOR="#DD0000"]'LoginCookieRecall'[/COLOR][COLOR="#007700"]] && !empty([/COLOR][COLOR="#0000BB"]$GLOBALS[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'cfg'[/COLOR][COLOR="#007700"]][[/COLOR][COLOR="#DD0000"]'blowfish_secret'[/COLOR][COLOR="#007700"]])) {
[/
COLOR][COLOR="#0000BB"]$default_user[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$GLOBALS[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'PHP_AUTH_USER'[/COLOR][COLOR="#007700"]];
[/
COLOR][COLOR="#0000BB"]$default_server[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#0000BB"]$GLOBALS[/COLOR][COLOR="#007700"][[/COLOR][COLOR="#DD0000"]'pma_auth_server'[/COLOR][COLOR="#007700"]];
[/
COLOR][COLOR="#0000BB"]$autocomplete[/COLOR][COLOR="#007700"]=[/COLOR][COLOR="#DD0000"]''[/COLOR][COLOR="#007700"];
}
[/
COLOR][/COLOR
Далее сам вывод:

PHP код:
[COLOR="#000000"][/COLOR]" size="24" class="textfield"/>[/COLOR] 
Алгоритм эксплуатации:

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 сначала надо перехватить.
 
Ответить с цитированием