Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
w48crash — PoC-код для уязвимости в webmod v0.48. Изначально написан в 2007 году, присвоен CVE-2007-1260. | Kitploit
Инструменты/GitHubGitHub/thecybermind/w48crash
Анализ уязвимостейЭксплуатацияШелл-кодТестирование на ПроникновениеИнструмент Удаленного ДоступаЭксплуатация Бинарных Файлов
GitHubthecybermind/w48crash

w48crash

PoC-код для уязвимости в webmod v0.48. Изначально написан в 2007 году, присвоен CVE-2007-1260.

Репозиторий
11 год назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Переполнение стека в WebMod CVE-2007-1260

от cybermind (Kevin Masterson)
[email protected]

Сайт WebMod (архивировано): https://web.archive.org/web/20080517044559/http://djeyl.net/w.php

Уязвимые версии:
0.48, как Win32, так и Linux. Предыдущие версии могут быть уязвимы. Эта уязвимость должна работать с любой версией HLDS.

Тип уязвимости:
DoS, удаленное выполнение кода от имени пользователя, под которым запущен HLDS.

Описание: При получении HTTP POST-запроса он выделяет 11 байт в стеке для хранения значения Content-Length, но записывает в этот буфер до тех пор, пока не будет получен символ новой строки или нулевой терминатор. Когда ваша строка Content-Length достигает 158308 байт, начинается перезапись EIP. Это число может немного отличаться в Linux из-за выравнивания. Ваш shellcode не должен содержать 0x00, 0x0A или 0x0D, иначе чтение данных из сокета будет остановлено.

Это может помочь в выполнении вашего shellcode:

  • Для Win32:
    Имеется "FF E4" (jmp esp) в w_mm.dll v0.48 по адресу 0x67E03C5B
  • Для Linux:
    Имеется "FF E4" (jmp esp) в metamod_i386.so v1.19 по смещению 0x0008835C

Код доказательства концепции:
w48crash.c
Примечание: "shellcode", используемый в PoC, жестко задан для работы с сервером на Win2K SP4/kernel32.dll/user32.dll v5.0.2195.6688. Однако само переполнение буфера будет работать на любой версии Windows. Для тестирования можно установить глобальную переменную "our_eip" в 0xFFFFFFFF, чтобы просто вызвать крах.

Причина/Исправление:
Проблемный код находится в строках 542-552 файла server.cpp:

root@kitploit:~
542        char clbuf[11];
543
544        for(i=0;(size_t)i<strlen(input)-17;i++)
545        {
546            if(!strnicmp(input+i,"\nContent-Length: ",17))
547            {
548 LOG_DBG_SERVER(("Content-length spotted"));
549                i+=17;
550                for(j=0;input[i]!='\n'&&input;[i];i++,j++)
551                    clbuf[j]=input[i];
552                clbuf[j]='\0';

Буфер clbuf, выделенный в строке 542, заполняется циклом в строках 550-551, а затем завершается нулевым символом. Исправление заключается в замене строки 550 на:

root@kitploit:~
550                for(j=0;input[i]!='\n'&&input[i]&&j<10;i++,j++)
Скачать инструмент