Добрый день.
Во время просмотра NVD, нашел уязвимость на SquirrelMail. ссылка на уязвимость
Решил провести небольшое исследование и посмотреть причину присвоения ей рейтинга 6.8
В описании сказано что атакующий может выполнять произвольные команды через оболочку metacharacters в строке имени пользователя.
Поставил себе SquirrelMail 4.10 на виртуалку. Полез посмотреть функцию map_yp_alias в скрипте functions/imap_general.php
Код:
/**
* This is an example that gets IMAP servers from yellowpages (NIS).
* you can simple put map:map_yp_alias in your $imap_server_address
* in config.php use your own function instead map_yp_alias to map your
* LDAP whatever way to find the users IMAP server.
*/
function map_yp_alias($username) {
$yp = `ypmatch $username aliases`;
return chop(substr($yp, strlen($username)+1));
}
В чём ошибка понятно. Но как через неё можно выполнять команды?
Попробовал найти место где вызывается функция, не нашел. Так же не бывает что бы функция была описана, но не использовалась.
Просьба объяснить подробнее, как может быть реализована атака через эту ошибку. Потому как не понятно почему Exploitability Subscore выставлен 8.6
__________________
Я отдал бы немало за пару крыльев,
Я отдал бы немало за третий глаз
За руку на которой четырнадцать пальцев
Мне нужен для дыхания другой газ..
>> Но как через неё можно выполнять команды?
Слепое выполнение по крайней мере уже есть, вывод не обязателен, т.к. при присваивании $yp = `ypmatch $username aliases`; , код уже выполняется.