Security Lab

Досуп к произвольным файлам в pico Server (pServ)

Дата публикации:29.12.2003
Всего просмотров:1216
Опасность:
Средняя
Наличие исправления: Да
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации: Удаленная
Воздействие: Раскрытие важных данных
Раскрытие системных данных
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты: Pico Server (pServ) 3.x
Уязвимые версии: pServ 3.0 beta 2

Описание: Уязвимость обнаружена в pico Server (pServ). Злонамеренный пользователь может получить доступ к произвольным файлам на уязвимой системе.

Удаленный пользователь может запросить URL, содержащий '//', чтобы получить доступ к произвольным файлам вне wwwroot каталога.

Пример/Эксплоит:

GET //../ HTTP/1.0\r\n\r\n

URL производителя:http://sourceforge.net/projects/pserv

Решение: Установите следующее исправление:

--- main.c	2003-09-22 10:39:24.000000000 +0200
+++ patch.c	2003-12-19 12:40:47.000000000 +0100
@@ -455,6 +455,11 @@
                     dirName[1] = req.documentAddress[2];
                     dirName[2] = req.documentAddress[3];
                     dirName[3] ='\0';
+                    if (dirName[0] == '/')
+                    {
+                        sayError(sock, FORBIDDEN, req.documentAddress, req);
+                        return -1;
+                    }
                     if (!strcmp(dirName, "../"))
                     {
                         sayError(sock, FORBIDDEN, req.documentAddress, req);
@@ -462,6 +467,15 @@
                     }
                 }
                 j = 0;
+                for(i = 1; i < sL; i++) {
+                   if(req.documentAddress[i] == '/')
+                        if(req.documentAddress[i+1] == '/')
+                        {
+                            sayError(sock, FORBIDDEN, req.documentAddress, req);
+                            return -1;
+                        }
 
+		}
                 for (i = 1; i < sL; i++) {
                     if (req.documentAddress[i] == '/')
                     {
Ссылки: directory traversal bug in Pserv 3.0b2