On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru






 

Дырявый CGI скрипт

Intro

В этом тесте я опишу, как залезать внутрь сервера, смотреть его файлы
и, хотя доступ будет readonly, получить кое-какие привелегированные
возможности. =)


../../../../etc/passwd

Все началось с того, что на чат www.mafia.ru/chatroom зашел какой-то
чел и пригласил всех на новый чат www.nashchat.org. Ну, мне все равно
делать было нечего, решил я пойти туда, посмареть, что к чему.

Отступление: до этого момента я уже сделал все нижеописанное с сайтом
мафии, но об этом подробнее я написал в конце.

Чат как чат. Никаких наворотов нет. 2 минуты извращений с тэгами и я
уже могу писать мессаги от других лиц. :) Скучно.. Хотелось чего-то
новенького. Решил полазить по серверу. Простенькие странички. Ничего
такого скриптованного, все просто до невозможности.

Пошел гулять по ссылкам. Ничего обычного.. И тут я увидел ЭТО :)
http://www.nashchat.org/cgi-bin/win2win.cgi?qa.html
...тут сразу ясно, что через скрипт win2win.cgi показывается в браузере
страница qa.html. :) "Ну, - думаю -, нашел!" Быстренько скорректировал
адрес у себя в браузере до такого:
http://www.nashchat.org/cgi-bin/win2win.cgi?../../../../../etc/passwd
Каково же была моя радость, когда я в браузере в качестве результата
получил содержимое файла паролей. =) Ясен пень, что самих паролей в
них не было. Сервак запущен из-под nobody и насчет реального файла
паролей (/etc/shadow) у него пожизненный permission denied (ну
недоступны они ему, что поделаешь). :-\ Но не беда! Даже из passwd
можно выудить кучу полезной информации.
Недолго я сидел, разглядывая скрипты самого чата, пока мне delta не
напомнил об одном интересном файле - .bash_history. Кто не знает - в
этом файле лежат как хистори все команды, набранные юзером в консоли
телнета. Открыл я недавно стыренный файлик пассвд, дабы посмотреть,
какие юзеры есть на сервере. И пошел проверять у всех .баш_хистори.
Дошел до самого интересного юзера - httpd. Как ни странно, его хистори
тоже оказалось доступным мне. =) Вот вам урок, админы! Помните, что не
только вы видите, что вы набираете! Просмотрев хистори нашего юзера я
наткнулся на такие строчки:
- - - -
ls -la
joe proj.apple.co.il-access_log
joe proj.apple.co.il-error_log
ls -la
cd etc/
joe httpd.conf
ping proj.apple.co.il
lynx http://proj.apple.co.il
lynx http://rest.apple.co.il
- - - -
Нетрудно догадаться, ЧЬЕГО сайта это был админ, чей лог я просматрива :).
Прочитав еще немного хистори я увидел следующее:
- - - -
ls -la
./password.cgi semen test
- - - -
Хех.. :) вот и скриптик куда-то. В это куда-то пускает, по-видимому,
с логином/паролем "семен/тест". Быстренько забежав на сайт rest.apple.co.il
(откуда я взял его, см. выше) я добавил еще к адресу /password.cgi и...
Меня не пустило. Скрипт сам был, а пароль был неприавильный. Видимо
хистори было довольно старое и админ уже 10 раз поменял логин и пароль:).
Ну пофиг..

Начитавшись хистори я выделил для себя следующие вещи:
- чтобы зайти на странчику админа виртуального ресторана
(rest.apple.co.il), нужно пройти аутенфикацию через /password.cgi
- чтобы не проходить аутенфикацию ;) можно напрямую зайти сюда:
rest.apple.co.il/admin.html
- полный путь к папке этого сайта на сервере:
/usr/local/apache/share/cgi-bin/rest/

Мякго говоря, админы лоханутые тут. Хотя бы страницу администратора
назвали как-нибудь по-другому. Ее можно было найти даже через простой
перебор названий страниц. Да и печатать надо без ошибок. Я бы сейчас
много чего не увидел бы.

Ват такая фигня. Я еще много информации для себя нашел полезной в
файлах на этом сервере. Например, один чудик записал свой логин/пароль
в свой же домашний католог в файл pasword. Я увидел в хистори что-то
на подобие:
- - - -
passwd {юзер сменил пасворд свой}
cat > pasword {записать с консоли в файл}
- - - -
В последней строчке юзер ввел свой пасворд в текстовый файл. Чтобы не
забыть, наверное. :)


Немного о Мафии :

Акромя хистори можно в некоторых скриптах добиться того, что можно
просмотреть сожержимое каталогов. Как, например, я этого добился на
сайте www.mafia.ru. Буквально случайно наткнулся на борду, где
торговали запчастями от автомобилей.
Ссылка типа этой:
http://www.mafia.ru/cgi-bin/ank/forum/view.cgi?A=5&B=0001&C=base/000002012312
быстро превратилась в
http://www.mafia.ru/cgi-bin/ank/forum/view.cgi?A=5&B=0001&C=../../mafia/chatroom
Таким образом я увидел содержимое скрипта чата :)
Внутри него в переменных были написаны все файлы с приватом, темп-файлы
и т.п. фигня. Мне оставалось только успевать менять путь к файлу. :)
Я долго думал, что за фигня у меня выдается, когда я набирал:
http://www.mafia.ru/cgi-bin/ank/forum/view.cgi?A=5&B=0001&C=../../mafia/passwd
Как потом оказалось, passwd - это папка. А в такой куче выдается просто
содержимое этой папки.

Кто будет особо хитрым, тот сможет найти еще и пароли на чат. Так он
сможет заходить под любым ником + читать "маляву" любого юзера. =)



Литература по CGI