Хакер #305. Многошаговые SQL-инъекции
phpGB - гостевая книга на PHP/MySQL. В программе обнаружена возможность внедрения SQL, PHP и HTML кода.
1. SQL injection. phpGB для санирования переменных использует директиву PHP magic_quotes_gpc. Если magic_quotes_gpc отключен, то нападающий сможет внедрять произвольный SQL код в существующий SQL запрос. Уязвимость позволяет выполнять произвольные команды в базе данных, удалять, изменять данные, получать привилегии администратора.
Пример: в поле имя введите любое существующее имя, а в поле пароль - "' OR
'a'='a".
2. После успешной идентификации, нападающий может ввести произвольный PHP код в файл конфигурации гостевой книги
(config.php), передавая параметры для сценария savesettings.php. На файл конфигурации ссылаются большинство других сценариев гостевой книги, т.е. при каждом обращении к таким сценариям, будет выполнен злонамеренный PHP код. Пример:
telnet example.com 80\n
POST /phpGB/admin/savesettings.php HTTP/1.0\n
Content-Type: application/x-www-form-urlencoded\n
Content-Length: 123\n
dbpassword=%22%3Bphpinfo%28%29%3B%24a%3D%22&toolbar=1 &messenger=1&smileys=1&title=1&db_session_handler=0
&all_in_one=0&test=\n
\n
3. phpGB не в состоянии проверять присутствие html-тэгов при выводе записей guestbook. Возможно ввести произвольный код сценария в guestbook, который будет выполнен в Web клиенте административного guestbook пользователя, когда он попытается удалить такую запись. Пример:
"delete me <script>alert(document.cookie)</script>"
Уязвимость обнаружена в phpGB 1.1-1.3.