Дырявые CGI

Автор: admin

99% всех дефейсов делается через дырявые CGI. И пусть у админа на серваке самый навороченный файервол, перекрыты все порты кроме 80 и установлена последняя версия Кашперовского =)) , но в каталоге /cgi-bin лежит один бажный скрипт, то вся его работа коту под хвост. И однажды утром придя на работу с бодуна (админы тоже люди =) ), он с ужасом увидит “][acked by Mega-Cool_Hackerzzz! Fuck You Admin!!!” Вот такая тяжёлая админская жизнь…
Но хакеры нужны для того чтобы админы не расслаблялись! И мы сейчас займёмся изучением часто встречаемых CGI-багов и бажных CGI-скриптов.
Для начала самые распространённые CGI-баги.
1. Отсутствие проверки на “../”
В Юниксе эта последовательность обозначает переход на каталог вверх. Благодаря этому можно выполнить практически любой файл. Например,
http://site.com/cgi-bin/script.cgi?file=file.txt , можно заменить на
http://site.com/cgi-bin/script.cgi?file=../../../../etc/passwd и вот мы видим файл паролей!
2. Отсутствие проверки на “;”и “|”.
Также позволяет запускать любые программы. Например,
http://site.com/cgi-bin/script.cgi?file=;id; или http://site.com/cgi-bin/script.cgi?file=|id| , выполнится командa id и покажет нам наши права.
3. Отсутствие проверки на “%00” (тупиковый баг).
Если в конец запроса дырявому CGI поставить этот символ, то он покажет нам требуемый файл. Например, http://site.com/cgi-bin/script.cgi?file=../etc/passwd%00 .

Ну, а сейчас бажные скрипты.

netauth.cgi.
Покажет любой файл если его влепить как параметр запроса. Ещё баг позволяет использовать “../” и просматривать почти любые файлы.
everythingform.cgi.
Скрипт выполнит любую команду в виде параметра запроса заканчивающего на ”|”. А ещё в этом скрипте отсутствует проверка на “../”.
search.cgi.
В идеале скрипт работает как поисковик на сайте… А если посмотреть на него с другой стороны, то можно заметить, что он позволяет ходить по dir’ам и выполнять любые файлы. Всё дело в отсутствии проверки на “../”.
zml.cgi.
Выполнит любой файл, если прописать его путь через “../”, а в конце добавить “%00”.
lastlines.cgi.
Позволяет выполнять любую команду, если её вписать после параметра , выделив “;”. Кстати отсутствует проверка на “../”.
tigvote.cgi.
Из-за отсутствия проверки на “|” этот скрипт покажет любой файл с правами web-сервера.
gbook.cgi.
Это типа гостевуха. Но так как в скрипте отсутствует проверка на “;”, то добавив это в параметр запроса и составив команду, можно успешно её выполнить.

Это только малая часть всех существующих коряво написанных скриптов (мне было в лом перечислять ещё). Если интересно, полазь по баг тракам и поищи инфу там. Но и этого достаточно для того чтобы понять работу дырявых CGI-скриптов.

Комментарии

Нет комментариев. Вы можете быть первым!

Оставить комментарий

:

:
: