ОБЗОР БАЖНЫХ CGI

легко и быстро

Спецвыпуск Xakep, номер #022, стр. 022-020-2


То можно поступить следующим образом:

http://www.host.com/cgi-bin/script.cgi?file=../../../../etc/passwd

То есть мы сначала поднимаемся на три уровня выше, потом опускаемся на один уровень в папке /etc и, наконец, читаем из нее файл passwd.

2. Отсутствие проверки на ";" и "|". Часто позволяет запускать любые программы (опять же, на запуск которых хватает прав).

3. Отсутсвие проверки на нулевой символ ("%00"). Иногда, если поставить этот символ в конец запроса дырявому cgi, он выдает требуемый файл на экран. Например, http://www.host.com/cgi-bin/script.cgi?file=/etc/passwd%00.

А теперь поехали смотреть сами скрипты:

everythingform.cgi

Скрипт с удовольствием выполнит любую команду, если предложить ему ее в виде параметра запроса, заканчивающегося на "|". Нет проверки на этот символ :(. Для полного комфорта нет еще и обработки на "../" – можно проложить дорожку к любому файлу и запустить его.

search.cgi

Написали этот корявый скрипт ребята из Home Free. Скрипт облегчает организацию поиска по сайту. Как говорится, у судьбы есть чувство юмора - search.cgi содержит баги, позволяющие хаксору просматривать любые файлы с привилегиями вэб-сервера и лазать по директориям. Вот тебе и облегчили поиск :). Забыли включить элементарную проверку на "../".

netauth.cgi

Позволяет посмотреть любой файл, просто вбухав его как параметр запроса. Да еще и не имеет проверки на "../", что позволяет посмотреть действительно любой файл.

handler

Бажный скрипт, который позволяет выполнять любые команды с правами web-сервера. Хотя изначально он писался для просмотра HTML-файлов. Проблема заключается в том, что скрипт не проверяет как следует данные, и, добавив к передаваемым параметрам какую-нибудь команду после точки с запятой (";"), можно насладиться результатами ее выполнения.

lastlines.cgi

А этот красавец позволяет любому желающему экзекютить бинарники с правами вэб-сервера. Для этого достаточно после передаваемых параметров добавить команду, отделенную от них символом ";". Но это еще не все: кодер накодил аж два бага, второй из которых позволяет произвести обходи директории с помощью последовательности символов "../".

faqmanager.cgi

Выдает требуемый файл, если скормить ему нулевой символ в конце запроса. Изначально предполагалось, что этот скрипт должен облегчать ведение всяких FUQ, но теперь о переквалифицировался в fuck для админов ;).

zml.cgi

Покажет любой файл, если показать ему путь к файлу при помощи "../", а в конце прибавить еще и "%00".

simplestmail.cgi

Из-за отсутствия проверки на ";" позволяет выполнить любую команду, если оформить ее как параметр и приплюсовать к ее началу эту самую ";".

csmailto.cgi

Вообще целый букет корявостей! Скрипт отдается даже без использования метасимволов! Он просто так криво написан, что комбинируя параметры, можно запускать любой файл, отправлять результат его работы себе на мыло, отправлять себе на мыло любой файл, ди и вообще отправлять любое сообщение кому угодно от кого угодно.

webwho.pl

Это вроде как web-версия программы whois, но она глючит, и если ей передать в запросе команду, отделенную пресловутой ";", она ее с охотой выполнит.

Назад на стр. 022-020-1  Содержание  Вперед на стр. 022-020-3