Xakep #305. Многошаговые SQL-инъекции
Mailreader.com - Web mail pop3 система,
написанная на Perl. В программе обнаружено несколько уязвимостей:
1. Чтение произвольных файлов
Уязвимость связанна с недостаточной проверкой переменной configLanguage, которая отвечает за установку используемого языка. Удаленный атакующий может использовать последовательность '../'чтобы получить доступ к любому файлу на системе. Пример:
http://192.168.0.1/cgi-bin/mail/nph-mr.cgi?do= loginhelp&configLanguage=../..
/../../../../../etc/passwd%00
2. Удаленное выполнение команд
Mailreader позволяет пользователю определить собственный почтовый сервер, так что любой пользователь может войти и использовать mailreader. Пользователь также может записать изменить конфигурацию SMTPServers, используя configSMTPServers. Для версии 2.3.30 и выше есть опция, которая определяет использование sendmail в качестве почтового агента. Ошибка связанна с недостаточной
проверкой $CONFIG RealEmail в compose.cgi, который будет
использован как $from в network.cgi:
from network.cgi line 372:
if ($server =~ /[.]*sendmail/) {
# close the file 'cause it isn't needed
close FILE;
# send the file
my $res = `$server -U -f$from -t -i < $filename`;
# and escape
return 1;
}
Это позволяет пользователю выполнять произвольные команды с привилегиями Web пользователя.
Уязвимость обнаружена в Mailreader.com v2.3.30-2.3.31.