взломt0mВторжение в ХакЗонуИдеальной защиты не существуетБывало ли у тебя так: сидишь ты на каком-нибудь портале, в твоем черном умишке роятся мыслио взломе, но тут закрадывается сомнение в невозможности этого и ломает весь кайф? Наhackzona.ru я узнал многое, и взлом самой ХакЗоны казался мне чем-то нереальным и в какойтостепени даже кощунственным :). Но лозунг ХакЗоны гласит: «Все, что создал человек, можновзломать, идеальной защиты не существует».Как все начиналосьДело было ночью. От нечего делать я читал статейки, сохраненные навинте, и, признаться, это мне уже порядком надоело. Но тут, наткнувшисьна материал по хаку одного девелоперского портала, я воспрял и, ощутив всебе уверенность и силу, набрал в Опере fssr.ru (второй домен ХакЗоны).Прежде всего нужно было определиться с целью взлома. Так как никакойвыгоды из злодеяния я извлекать не собирался, я решил простозадефейсить сайт. Надо было с чего-то начать. Сканить хост на предметбажных демонов не хотелось. Перебирать параметры в поисках инъекцийказалось глупым, но я все же немного поигрался с параметрами.К сожалению, это ни к чему полезному не привело. Но мое вниманиепривлек модуль поиска, который красовался на главной странице. Вбивв поиск «sdfg», я нажал на кнопку «Поиск». Открыв сорцы страницы срезультатами работы скрипта, я обнаружил следующую строчку:Проведя поиск по значению «">test», я увидел то, что ты можешь наблюдатьна рисунке.Просмотрев код, я обнаружил:test">Как видишь, я выбрался за пределы тэга и уже мог вставлять код в телостраницы. Но проведя поиск по значению «“>alert(«xss»)», я получил редирект на главную пагу портала :(. Судя по всему,параметр поиска избирательно фильтровался.Нужно было искать какой-нибудь не совсем стандартный баг. И тут я вспомнил,что параметры в скрипты могут передаваться еще и через кукисы.Недолго думая, я полез смотреть, что у меня в печеньках (смотри рисунок):Параметр user, скорее всего, используется для аутентификации и представляетнаибольший интерес. В большинстве случаев кукисы шифруютсяалгоритмом base64. Для перекодировки из base64 написано многотулз, например n57_base64.exe, также можно воспользоваться следующимPHP-скриптом:Base64 encoder/decoder by t0m064xàêåð 08 /104/ 07
взломСookie-файл нюка Xss in hackzona.ru Содержимое cookie-файлаПерекодировав значение своих печенюшек, я получил:60505:t0m:07a67fe69ace3f559438525b0635666d:10::0:0:0:0::4096Где-то я уже это видел. Все это очень напоминало PHPNuke, известныйсвоей дырявостью ;). За время его существования в нем успели найтипредостаточное количество уязвимостей. Это радовало.Вставив апостроф после ника, я закодировал строку и поменял значениев cookie-файле через Оперу. Без особых надежд я обновил страницуи, подождав несколько томительных секунд, увидел сообщение обошибке БД.Error in obtaining userdata : loginDEBUG MODESQL Error: 1064 You have an error in your SQL syntax; checkthe manual that corresponds to your MySQL server versionfor the right syntax to use near ‘’t0m’’’ at line 3SELECT user_id, username, user_password, user_active,user_level FROM voov_users WHERE username = ‘t0m’’Line : 775File : /home/papanya/www/hackzona.ru/includes/functions.phpСначала я не поверил своим глазам. Ну уж никак не ожидал я, что всебудет так просто. Немного отойдя от шока, я принялся изучать отчет обошибке. Прежде всего строки «check the manual that corresponds to yourMySQL server» свидетельствовали о том, что в качестве БД используетсясервер MySQL. Особенно меня порадовала строка:SELECT user_id, username, user_password, user_active,user_level FROM voov_users WHERE username = ‘t0m’Глупый «мускул» сделал за меня половину работы, вернув и именастолбцов, и название базы :). К полезной информации можно отнеститакже строку «/home/papanya/www/hackzona.ru/includes/functions.php»,которая указывает полный путь к каталогу с движком сайта. Дело оставалосьза малым. Мне надо было только скормить БД нужный мне запрос. Ясформулировал запрос так:‘UNION SELECT null, username, user_password, null, nullFROM voov_users/*.Думаю, объяснять ничего не нужно, так как о скул-инъекции на страницахжурнала писали не раз. Вставив все это дело в куки, я получил вразумительныйответ:60505:t0m’UNION SELECT null, username,user_password, null, null FROM voov_users/*:07a67fe69ace3f559438525b0635666d:10::0:0:0:0::4096,Перекодировал его и заменил значение в куках. Когда я обновил страницу,мне почему-то вернулась пустая пага. Ни таблицы, ни юзернеймов,ни хешей... Почесав репу, я начал листать доки по скул-инъекциям ивдруг вспомнил о конструкции INTO OUTFILE, с помощью которой можновыгрузить выборку в файл на сервере. Конструкция имеет следующийсинтаксис: Into Outfile ‘path/file’, причем присутствие FROM в запросеобязательно. Но сначала нужно было найти директорию, в которой у насесть права на запись. Скорее всего, это папка с аватарами. Зайдя на веткуфорума, в свойствах аватара первого встречного я посмотрел путь к папкес аватарами: /modules/Forums/images/avatars. Я сформировал кукис:60505:t0m’UNION SELECT user_id, username,user_password, user_active, user_level FROMvoov_users Into Outfile ‘../../../home/papanya/www/hackzona.ru/modules/Forums/images/avatars/jdFj4502HdJKormf56.gif’/*:07a67fe69ace3f559438525b0635666d:10::0:0:0:0::4096,И, заботливо перекодировав его, заменил значение в кукисах.Обновив страницу, я увидел пустую таблицу «Информация», что, какмне показалось, свидетельствовало об удачном выполнении запроса.Я перешел по ссылке hackzona.ru/modules/Forums/images/avatars/jdFj4502HdJKormf56.gif и скачал картинку весом 4 Мб :). Открыв блокнотомсуперкартинку, я увидел все юзернеймы и хеши пользователей.Брут хешей админов, как и предполагалось, ничего не дал, но мне это и ненадо было, так как Nuke проводит аутентификацию через куки с помощьюхешей. Заменив инфу в куках инфой одного из админов, я зашел на портал.Я мог читать приватные сообщения админа, оставлять комментариипод его ником, но заветной кнопочки «Админка» не было :(. Перепробовавварианты типа adm, admin, administrator, я так ничего и не нашел.В поисках панели админа я обратился к старому другу robots.txt. Самыммаленьким поясню, что в ro bots.txt хранится список ресурсов, которыене должны кэшировать поисковики. Найти его всегда можно по адресуhttp://site/robots.txt. В роботах ХакЗоны я увидел следующую инфу:User-agent: *Disallow: hzgo.phpDisallow: /admin/xàêåð 08 /104/ 07065