BestWWWD - WWW сервер, основанный на сервере NCSA, разработанный
BEST Internet. Система Server Side Includes (SSI), обеспечивает механизм интерактивных функциональных возможностей в реальном масштабе времени без программирования. Доступно множество команд SSI, включая echo, include, fsize, flastmod, exec, config, odbc, email, if, goto, label и break.
Уязвимость в BestWWWD существует в пути, которым сервер обрабатывает SSI. SSI может показывать SERVER_SOFTWARE, REMOTE_ADDR, QUERY_STRING и другие переменные среды, но по умолчанию в BestWWWD они не анализируются на наличие специальных HTML символов типа <
и >. Одна из переменных, которая наиболее часто присутствует в web-страницах и может легко управляться - HTTP_USER_AGENT. Эту переменную сервер получает от клиента при подключении и обычно она содержит версию программы и комментарии, например:
Mozilla/4.04 (X11; I; SunOS 5.4 sun4m)
Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)
Нападающий может использовать команду SSI exec cmd=, которая выполняет указанные команды, использующие Bourne Shell /bin/sh. Поэтому, нападающий может подключиться к .shtml странице, которая использует user agent (много владельцев сайтов любят показывать посетителям информацию о них) и посылать серверу HTTP запрос подобно следующему:
GET /index.shtml HTTP/1.1
Host: www.vulnerable-host.com
User-Agent: <!--#exec cmd="cat /etc/passwd"-->
Или, если web-страница отображает другие переменные среды, типа QUERY_STRING, HTTP_ACCEPT, HTTP_ACCEPT_LANGUAGE и т.д, то уязвимость тоже срабатывает. Очевидно метод, которым эта уязвимость эксплуатируется, может позволять выполнение произвольных команд с привилегиями
"nobody".