Форум » Чистоговорка. » Как взломали Lito.ru » Ответить

Как взломали Lito.ru

Константин Шалеев: Как взломали Lito.ru можно прочесть здесь: click here Лично мне жутко противно. Это как кинуть ночью пустую пивную бутылку в припаркованный у подъезда автомобиль... просто так... от дури и безделья... Противно мне. Что скажете, други?

Ответов - 36

Константин Шалеев: Теперь эта ссылка не работает мистика

Константин Шалеев: пока работает, решил сюда текст сообщения с того форума перекинуть... хотя никому не надо его стирать оттуда, наверно... * * * Автор: ZaCo Oct 21 2005, 19:51 Взлом LiTO.ru.....или как все было Эта статья написана новичком для новичков в sql-inj, хотя будет просто интересно почитать историю взлома lito.ru . Перед прочтением советую хоть немного разобраться со структурой баз данных и самой субд MySQL. Дело было вечером - делать было нечего. Начало стандартное – не знаю как, попался мне в руки линк ведущий на lito.ru, немного осмотревшись, я обнаружил форум - количество юзеров мне понравилось, что-то около 1500 пользователей. Сайт был литературной тематики, количество писателей было тоже немало, поэтому я взялся за "взлом", в кавычках, потому что его как такого и не было (потом узнаете почему). Зайдя на форум, я не узнал его версию, о чём свидетельствовала следующая надпись "Powered by phpBB © 2001, 2005...". Поэтому тупой взлом, через новоиспечённый сплоит я отложил и завернул. Моя точка зрения такова, что для новичков взлом через сплоиты губителен, так как человек таким образом ничему не учится, много ли мозгов надо что бы подставить в окно консоли или браузера строчку и нажать Enter. И так вернёмся к лито. Движок был пхп'эшный что меня порадовало - не тусклые хтмл страницы, и вообще много не мало! Больше шанс на уязвимость! Накатав в строке поиска по сайту "<><>" в ответ пришла страница с внедрённым неотфильтрованным запросом - хсс! Самое интересное это то, что форум находился по адресу http://lito.ru/forum/ - то есть можно было линк на форуме оставить, а там и куки своровать, но это я оставил на будущие безнадёжие. А сейчас надо было искать, что-то более серьёзное. По началу всё было плохо... ни одной зацепочки! Уже собрался бросить это дело, как вдруг - sql-inj, явился не запылился! Бага выглядела так: CODEhttp://www.lito.ru/all.php?alex081971'/* то есть возвращалась инфа о пользователе с именем alex081971, кавычка закрыла текущую строку, а /* закоментили строку запроса. Впоследствии вылезли и другие бажные скрипты: CODEhttp://www.lito.ru/photolist.php?fid=61'/* http://lito.ru/sbornik/420'/* http://www.lito.ru/all.php?alex081971'/* как видно я просто не обратил внимания на то, что в базу посылается запрос не с числом, как нам кажется, а со строкой "61" для photolist.php! Так что отсюда совет - не верь глазам, если как кажется (а когда кажется креститься надо) передаётся число - то это совсем не факт что не может передаваться строка. Выводы делайте сами. Больше я багов не нашёл, точнее не хотел уже искать - на php-inj или инклуд надежды было мало, а sql-inj уже что-то. Что бы сделать? Предположив, что на сервере стоит MySQL новой версии, я начал эксперементировать с UNION, если не знаешь что это такое почитай доки по синтаксису различных СУБД. И так подставляю в своего осла CODEhttp://www.lito.ru/all.php?alex081971'+union+select+null/* - как неудивительно, такой запрос не работает. Я зря надеялся на работающий UNION, так как перебрав около 100 стобцов я решил забить на это дело. Простым запросом - CODEhttp://www.lito.ru/all.php?'or(id=1)/* я получил первого "писателя" с логином root, то есть в таблице была колонка id, а позже выяснилось что и name. Тут я вспомнил, что в MySQL 4.1 и выше введена поддержка подзапросов. Однако это не сработало, после долгого перебора имени таблицы с записями юзеров я и на это дело положил. Видимо версия MySQL была старая, но нельзя же останавливаться на полпути! Вперёд к победе Продолжая бродить по ссылкам в поисках инклудинга или php-inj, я нашёл незаметную поначалу форму ввода логина и пароля для писателей. Для проверки на уязвимость я зарегистрировал себя на имя ZaCo. На главной странице подставляю в имя юзера - себя родимого, ну и пасс тоже свой, тут вижу пишет мне скрипт - Здравствуйте, Alex Zaharov! Alex Zaharov - имя и фамилия указаные при регистрации. Нажимаю logout и выхожу из сессии. Теперь захожу к себе под логином ZaCo' и рандомным пассом - не пускает! Хм... а если ZaCo'/* - всё равно не идёт. Тут я уже отчаился... Но! Самое интересное - при откатке назад мне пишут - Здравствуйте, Alex Zaharov! Ну что же иньекция проведена удачно дамы и господа! К сожалению управлять своими произведениями я не мог, меня не пускали, но это хоть что-то - сам факт что скрипт меня распознал наводил на мысли. Стало так же ясно, что скрипт проверки пасса был написан очень криво. Что бы лучше понять принцип его работы пришлось включить мозг, взять кусок (нам и куска хватит) бумаги и кусок, хотя нет - лучше целую ручку. (см. далее)

Константин Шалеев: (продолжение) Дальше больше Подставляем такое значение в поле ввода логина - ZaCo'and(substring(passwd,1,1)='r')/*, а в пасс любое значение - оно всё равно обрезается. Скрипт вывел - Здравствуйте, Alex Zaharov! так как мой пасс начинался на "r", в тоже время при значении логина - ZaCo'and(substring(passwd,1,1)='q')/* скрипт вернул - Здравствуйте, ! так как условие ложное! Значит я мог перебрать посимвольно пасс root'а! И так подставляю - root'and ascii(lower(substring(passwd,1,1)))>120/* результат положительный, значит первый символ пароля имеет ASCII больший чем 120. поясню: lower - преобразует символы в нижний регистр('A'->'a'), substring(st,i,count) - выделяет строку из st с позиции i длиной count символов. После 5-7 запросов я получил код первого символа пароля пользователя root. Достав ASCII таблицу, оказалось первая буква в пароле "p", но мы искали код для символа в нижнем регистре, поэтому составил следующий запрос - root'and ascii(substring(passwd,1,1))=80/* он вернул положительный результат, значит первая буква пасса не "p", а "P"! После нескольких таких запросов я получил пасс root'a - "PlqGFk". Первый шаг сделан! Идём дальше. В админке Оказавшись в админке я мог расматривать заявления о регистрации на портале lito.ru, мог публиковать/удалять/менять новости, таким образом можно было и дефейс сделать - опубликоать новость типа "HaCkeD bY ZaCo", но после таких долгих операций над lito мне так просто отделоваться не хотелось. Кроме дополнительных sql-inj в админке, которых и так хватает, я ничего не обнаружил. А жаль... Не помню как, но я нашёл ещё одного админа с именем - Алексей Караковский, подобрав так же пароль и к этому админу я оказался в более интересном месте... А здесь кроме всего прочего я нашёл меню управления статусами пользователей, их пароли и логины, а их было 1824 - неплохо для начала! Забавы ради я поставил себе статус редактора раздела и мог также безнаказанно публиковать и менять новости! Но не тут то было - меня видимо просекли, так как на следующий день мой статус стал "nobody" так сказать. Ну а на послеследующий день я лицезрел на главной странице сайта следующее: "Леди и джентльмены. Отражение третьей попытки взлома сайта закончилось неудачно. Сайт закрыт на неопределённый срок. Восстановление материалов, опубликованных после 12 сентября 2005 года, вероятнее всего, невозможно. С прискорбием, главный редактор сайта Алексей Караковский." P. S. Редакция, несмотря на невзгоды, не сдаётся и предлагает переждать тяжёлое время на форуме "Имён Любви" у Славы Фурты. " Алексей Караковский - тот самый админ чей пасс я тоже спёр. Ну на этом моя история заканчивается! Кстати никакая информация на сайте не была изменена - никакие файлы не были удалены и т.д. и т.п. И напоследок: 1) Всегда фильтруйте данные! 99% взломов происходит как раз из-за недостаточной фильтрации данных 2) Будте целеустремлённым человеком, настоящие ошибки не подают на блюдечке 3) Не верь глазам Всё остальное лишь вытекает из предыдущего. Это не руководство к взлому - это простая история как простой подросток имеющем в распоряжении 2 года общения с компьютером взломал базу паролей портала lito.ru - имеющего отнюдь немалую посещаемость. Так что ошибки есть везде - основная задача администратора хотя бы пытаться их закрыть. email: zaco@yandex.ru * * *


chingizid: все так просто, а ихние понты по поводу перемен пароля все насмарку. Мне по почте высылали пароль, я по нему не мог войти, а по старому входил как нефиг делать, подумалось еще мне тогда-если бы мне немного побольше знаний, я б что хотел, то и сделал. Ума-то нет! Хотя по большому счету сайт был скорее мертв, чем жив. Там, из местных шишек один путный чел был, да и то под влияние дур всяких попал.

Константин Шалеев: ну что ещё добавить к твоим словам... пожалуй, я сделал два вывода: 1)(негативный) Алексей Караковский слишком высокого мнения о своей персоне, значимости его проекта и вообще переоценивает свою роль в современной истории ;+() Никому он, по большому счёту, нафиг не интересен и не вреден, как "вокруг литературно-музыкальный деятель". Его творческие способности я оценивать не берусь, есть что почитать и послушать у его группы. Человек он одарённый, по моему мнению. 2) (позитивный) Хорошо что я свой сайт сделал абсолютно без наворотов. Мне, конечно, вообще беспокоиться о "взломах" глупо никому это точно не надо И ещё я свой сайт до последней буковки сам написал и наизусть помню где и что , а не подрядил студента-програмиста за 50 баксов мне нечто из шаблона на PHP слепить. А всёже жаль мне этого парнишку - взломщика... лучше бы он потратил время на чтение lito.ru, чем на его вскрытие... эх...

wowa: Соглашусь с тобой, Костя, Лёша Караковский - интересный парень, но взял на себя так много (возможно, в силу юношеского максимализма), что, как говорится, ниасилил - и тебе два литературных сайта, и рок-группа, и вэб-разработки на сторону, издательские проекты.... Ну нельзя быть докой во всем. Но, с другой стороны, на ошибках учатся, а кто из нас не ошибался? Насчет "парнишки" - да не интересно толковому программисту читать умствования "гуманитариев духа" (коими и являются почти все авторы Лито.Ру). Он умеет сайты ломать, вот и оттачивает свое мастерство, ибо за него платят. Просто за взлом сайта МО РФ или ФСБ можно надолго сесть, а за Лито.Ру - нифига ему не будет, мог бы и свой домашний адрес оставить.

Константин Шалеев: [b]wowa[/b] Ну Лёша не такой уж и юный... и максимализм иногда уместен. Учиться на ошибках тоже учиться надо Ты тоже считаешь что лито.ру помер навсегда и не поднимется?

wowa: Да нет, думаю, что поднимется... А Лёша... Ну он на днях заявление в ЗАГС подал, значит молодой еще :) Ты сходи на Имена Любви, там в форуме "Песочница" Караковский прикол выложил :)))

Константин Шалеев: схожу... это интересно, или я что-то путаю, или он давно был женат, или раньше это был гражданский брак, или он женится второй раз... но у него точно один ребёнок есть... или я всё-таки что-то путаю, но вроде нет... В любом случае - совет им да любовь! Кстати, я с ним один раз лично встречался, пивка пил... ну не тет-а-тет, а в маленькой тусовочке... может теперь я должен быть гордый?

wowa: У члена общества гениев всегда есть повод для гордости :)

Константин Шалеев: [b]wowa[/b]

chingizid: он-то как раз и адекватный чел, по-моему лито.ру его самого тяготило, в силу воспитанности он не смог осадить свое окружение и взлом является ни чем иным как поводом, для закрытия проекта и переориентацию населения на Имена любви, на которых неистовствует Графоман в кубе Агнесс Форналик.

Константин Шалеев: [b]chingizid[/b] Эка ты глубоко копнул... может и так, чужая душа потёмки...

Константин Шалеев: [b]wowa[/b] прикол про Первак - это вещь!

wowa: chingizid пишет: цитатаИмена любви, на которых неистовствует Графоман в кубе Агнесс Форналик. А что, у девушки есть очень достойные стихи :) Особенно если опустить ее сексуально-суицидную экзальтацию. И еще у нее есть роман, причем довольно забавный, похож не то на Джойса, не то на Павича...

Константин Шалеев: [b]wowa[/b] Стоит почитать?

wowa: Константин Шалеев пишет: цитатаСтоит почитать? Попробуй, стихи - на именах лежат в форуме, роман - тут: Sine Titulo

Константин Шалеев: стихи читал, немножко... не очень... а роман - ух... масштабно... спасибо за ссылку...

chingizid: и сколько времени прошло? А Лито так и в зачаточном состоянии?

chingizid: ну и кто был прав?))))

Константин Шалеев: действительно... и кто был прав?

Константин Шалеев: Ну что ж, приятно, что Алексей внял голосу разума и разместил свой форум на профессиональном сервисе, на том же что и я свой.

Геллер: Ну, если б еще Алексей не был таким крутым и умным, его б не ломали пять раз в год. А зачем взламывают, от не хер делать что ли или это сосед Караковского живущий этажом ниже, которому караковские друзья он струшивают пепел на бельё?

Константин Шалеев: Если прочитаешь тут выше, то узнаешь, что тот "ломака" понятия не имеет кто такой Алексей, крутой он или глупый, и вообще чё это за байдовый сайт и туфтовый форум.

Геллер: Драсти, я Чехова почти не читаю, чего ж я буду про караковские ломки читать, пусть сам читает.

Константин Шалеев: а и то верно

алина: а откуда вы эту байку про взлом взяли ? и где это было опубликованно ?­

Константин Шалеев: А что Приват? Приват ничего... Это не байка, это быль. А где она была опубликована - ссылка в первом посте темы, но она уже не работает. Так что хотите - верьте, хотите - нет.

Defi Cat: ZaCo зачет, мои аплодисменты парнишке!!!!

Константин Шалеев: Ибо долбоёб - вот и апплодисменты. Такой шухер навёл - дойчляндия вздрогнула!

Defi Cat: У долбоёба врядли получилось бы. Долбоёб тот кто сайт так сделал криво.

Константин Шалеев: Долбоёб сайту рознь...

KateMos: Константин Шалеев пишет: © все права принадлежат Константину Шалееву, но абсолютно беззащитны Да, мы вот тоже свой сайтик сами сварганили, первый раз в жизни. Переделать всё никак времени нет. Мы, правда, не так круты, чтобы нас ломать, да "редисок" всяких много. Ну, думаю, сломают... поплачу, вывешу копию. А Борде БОЛЬШОЙ СПАСИБ, что она есть!

Константин Шалеев: KateMos, на моём сайте ломать нечего. Борда удобна, конечно, но есть нюансы... расстроила она меня однажды очень-очень: http://forum.shaleev.ru/?1-2-0-00000012-000-0-0-1179263067

KateMos: Ну, Константин, "Конёному дарю в смотри не зубят!" Я про это правило знаю. А правила - есть правила. Правда, раньше они были не такие жестокие, можно было раз в месяц заходить. Хотя, Бордовцев, я тоже понимаю, они тоже должны за счёт чего-то жить и оплачивать оборудование. С непосещаемых сервисов вряд ли кто-то будет тыкать по банерам. Всё равно молодцы!

Константин Шалеев: KateMos, ну да - не нравится - не ешь.



полная версия страницы