:::Просто история из жизни:::
Думаю кто-то да и извлекет что-нибудь полезное для себя из данного креатива, а кто-то... Не очень... Статья расчитана очевидно для первых
:::Поехали:::
Дело было не очень давно. Занимался я продажей шеллов, и в одни момент человек, с которым я довольно давно работал попросил получить шелл на одном из ресурсов в зоне edu, гонорар обещал не маленький, раз такой гонорар, я подумал, что и работу не простая, но свободного времени было много и я взялся за это дело. Сначало пробежался по ресурсу быстренько и как я и ожидал ничего серьезного не нашел, кроме одной пассивной XSS, но это не серьезно.
:::Надо смотреть глубже:::
Как ни пробовал ничего успешного не выходило, также на ресурсе я обнаружил форум IPB, но версия была новая и в паблик багтрэках ничего о ней сказано не было... вскоре я глянул в сурсы главной страницы сайта и обнаружил там такую надпись: powered by ******Cms . И я уже четко представлял, что меня ожидает дальше, а именно: Нужно порыться в исходных кодах либо этой цмски, либо форума. Со вторым желаний связываться не было, так как найти уязвимость там будет очень уж не просто, гораздо разумнее найти исходные коды CMS'ки, она была мне не известна, я и подумал, что будет проще. Пошел искать ее исходные коды, но это было тоже проблемно по полученным данным я узнал, что CMS'ка платная, но после 10-минутной прогулки по гуглу, я нашел где взять ее бесплатно. Также я попробовал reverse ip, хостилось с нами ещё 3 сайта. Но это я решил оставить на крайний случай.
:::На локальной машине:::
Я быстро начал устанавливать CMS на локалхост, сделав это я принялся изучать ее. В дирректории с сайтом я обнаружил папку install, а при окончании установки не оповещали о том, что эту папачку надо стереть, ну я и подумал начать с нее

Открыв скрипты на обзор по началу ничего не находилось, все было грамотно. Но в конце концов я смог обнаружить одну из уязвимостей, причем довольно серьезную. Скрипт */install/write.php
PHP код:
$code = $_POST['code'];
eval("\$arn = $code;");
Вообще $arn была уже определена изначально значением из бд. Я думал, что ниче не выйдет но это не так на самом деле. Я послал post'ом скрипту write.php значение code=phpinfo() и я наблюдал phpinfo, оказывается значение без труда переписывается.
Не успело пройти и 5-ти секунд как в моем браузере вместо локалхоста был открыт сайт, который требовалось взломать...Но к сожалению хоть предупреждений не было, но инстлалл был снесен, а значит халявного шелла мы так просто не получим. Пришлось вернуться заново к локалхосту(Вообще в будущем с помощью этой баги я получил несколько шеллов на других ресурсах, но эт другая история). На этот раз искать в инсталле уязвимости не имело смысла. Не прошло и часа как я нашел новую уязвимость. в скрипте.
*/languages/cslanguage.php
В самом скрипте багов нет, но инклудит в себя
*/languages/system.php
А в нем.
PHP код:
$lang = $_GET['language'];
и ниже
PHP код:
include(CMSDIRRECTORY.'/languages/'.$lang.'.php');
В самом скрипте на $lang наложена проверка, но это уже не спасает ситуацию, так как уязвимость уже была в файле который инклудится в cslanguage.php, и выполняется соответственно первее.
и результат вполне рабочий инклуд.
http://site/languages/cslanguage.php?language=[file]%00
Также в новостном скрипте был найден баженый fopen.
PHP код:
$mynew = $_GET['nw'];
$fopp = fopen("$mynew", "r")
далее шел построчный вывод на страницу через цикл.
Но к сожалению не все строки а только несколько первых.
Код:
http://localhost/denwer/site/news/news.php?nw=../configuration.php
Должен читать конфиг. И опять не прошло и 5-ти секунд как локалхост сменился реальным сайтом. Эта уязвимость присутствовала
Код:
http://site/news/news.php?nw=../configuration.php
Считывал конфиг, но толку от него не было не стояло ни phpmyadmin и прочего добра, которое могло бы нам хоть как-то помочь заюзать конфиг, удаленно не подключиться.
:::Используем дальше полученное:::
Код:
http://site/languages/cslanguage.php?language=../../../../../../../../etc/passwd%00
файл passwd прочесть получилось.
Далее я обнаружил форму заливки картинок для альбома.
недолго думая, я залил туда картинку, содержащую php код, с целью проинклудить ее. Наблюдать картинку я мог.
http://site/images/img.jpg
Заливать кроме gif, jpg, bmp ничего было нельзя и в этом нет ничего удивительного.
Код:
http://site/languages/cslanguage.php?language=../images/img.jpg%00
Я наблюдал шелл. Но не тот, который хотел бы видеть. На сервере стоял апач и права его были не ахти. Много чего я сделать не смог. А предъявлять заказчику это г. мне было просто не удобно.На непохеке не хотел останавливаться, и я решил пойти дальше. В моих данных был файл passwd юзеров было не много. Но я решил пробрутить фтп. Ненавижу брутить, но все же решил попробовать эту идею, а вдруг. Я составил список для брута и помимо добавил не большой словарь. И начал. Через два часа наблюдаю: Один ftp аккаунт срублен. Если не ошибаюсь логин был djRos. Я врубил фтп клиент... Акк подошел. Но тут я просто не понял одной вещи. А именно в какой дирректории я нахожусь

и как к ней обратиться через браузер(если таковое возможно). Я не стал заморачиваться и попробовал эту связку user

asword к ssh. И тут все было норм меня успешно приняли за своего.
:::Развязка:::
Этот ssh пользователь имел довольно высокие права. И самое интересное. В таких дирректориях /etc почему-то были многие файлы открыты на запись. Причем таким образом, что мне хватило возможностей добавить пользователя в систему с правами root. Вот это уже было хорошо. Я отдал заказчику root ssh доступ(он явно не ожидал такого) и забрал свой заслуженный гонорар. Это был первый edu который я взломал первый. Остальные, которые мне поддавались, были уже кем-то взломаны до меня.
на этом все. Надеюсь, что хоть кому-то креатив понравится.
pps: Идею писать подобного рода статьи я нагло С*****Л c ][. А чем я их хуже?
(цэ)