Обзор уязвимостей MWS v.1.0.2 :: www.MyWebServer.org

Сразу скажу, что данный веб-сервер строго ЗАПРЕЩЕНО ставить на машины, которые так или иначе имеют доступ в интернет. Потому что, багов в нём... как в IIS 2.0. Ладно, приступим к делу. Начну с описания самых опасных.

1.

Переполнение буфера и выполнение произвольного кода при получении слишком большого get-запроса (>989b).
Спец. для этой статьи, я написал сплойт, реализующий этот баг. Качать отсюда. Пользоваться крайне просто:
perl MWS_exp.pl [flag] [host] [port]
Где, Flag:
-d - заDoSить веб-сервер.
-r - заDoSить и выполнить Shellcode.
Что касается шелкода (я рипнул его из UPnP win32 xsploit), он открывает на 7788 порту шелл (cmd.exe).
P.S. кста, этот баг нашла не наша команда, но нами был вычислен размер буфера и написан сплойт. Все ниже описанные уязвимости нашли мы.

2.

Тоже buffer overflow, но уже в MWS Search Engine. При получении скриптом keyword'a (слова для поиска) больших размеров (точную величину вычислять влом было, ориентировочно 1kb), происходит "падение" сервера и _возможно_ выполнение произвольного кода (опять же, не проверяли).
Сплойт: http://vuln_host/MWS/HandleSearch.html?searchTarget=[1000b_keyword]&B1=Submit
Фикс: отключить в настройках сервера "Search page".

3.

Возможность выполнения на сервере произвольного JS/VB/HTML кода.
Баг также завязан на переполнении, но последствия несколько необычные.
Cплойт: http://vuln_host/[223b_of_any_data]<font%20size=50>DEFACED<!--//--

4.

В простонародье эту уязвимость зовут "real patch attack". То есть, возможность удалённо узнать реальный путь от корня до папки wwwroot (прим. особенно много аналогичных багов в php-скриптах).
Сплойт: http://vuln_host/[not_exists_dir]
Далее смотрите в сорс.

5.

Помнится, я пытался порутить сервер одной украинской компании. Сайт стоял на каком-то самодельном PhpBB. Вся проблема была в том, что я никак не мог узнать название индексного файла (он мог быть и index.php, и default.php, и DeFaUlT.php)! Потому что, все ссылки на него выглядели так: xxx.com.ua/?param=param (да, да и в Referer, и в Location было пусто). Кстати говоря, такая же фишка прослеживается и в некоторых наших крупных поисковых системах.
Так вот, в этот сервер специально встроен баг =)), исключающий возможность такого гимора. И опять же завязан на переполнении.
Сплойт: http://vuln_host/[221b_of_any_data]/   - заметьте наклонную черту!
Урл такого вида выведет вас на страницу, где будет прописано название индексного файлa, НО без первой буквы =) "ndex.html", например.

6.

Это уже не баг, а просто особенность.
Если вы столкнулись с рассматриваемым веб-сервером и все вышеописанные баги пропатчены, советую проверить наличие вот этих файлов:
/admin/ - настройка сервера
/MWSFileDownload.html - листинг всех папок, доступных через веб (wwwroot, cgi-bin и тд).
/MWS/fileupload.html - закачка на сервер файлов


Вот пожалуй и всё, что нам удалось найти. Hе хватает только dot bug'a =)