26 апреля, 2024

Основы Linux .Часть 14 ( MySQL )

Содержание:

С возвращением, мои желторотые хакеры!
Продолжаем серию статей по Основам Linux и сегодня сосредоточимся на базе данных MySQL. Хотя она не совсем относится к теме Linux, но MySQL — это база данных, которую выбирают в большинстве дистрибутивов Linux. Кроме того, это широко используемая база данных для тех веб-приложений, которым необходимо использовать базы данных. Поэтому прежде, чем мы перейдем к рассмотрению взлома MySQL, а затем и приложений, которые используют MySQL (а их тысячи), необходимо в них разобраться и понять.
MySQL — база данных с открытым исходным кодом, которая распространяется по лицензии GPL. Вероятно, это основная причина, по которой ее можно найти почти в каждом дистрибутиве Linux. Как вы знаете, Linux также является проектом с открытым исходным кодом и точно также распространяется по лицензии GPL. Разработанная компанией MySQL AB в Швеции в 1995 году, она была куплена Sun Microsystems в 2008 году, а Sun Microsystems, в свою очередь, была куплена Oracle в 2009 году.
Поскольку Oracle является крупнейшим в мире издателем программного обеспечения для баз данных, то все open-source сообщество разработчиков испытывало сильное волнение относительно соблюдения Oracle своих обязательств по сохранению исходных кодов MySQL открытыми. В настоящее время существует форк базы данных MySQL под названием Maria, который как раз и был создан, чтобы сохранить исходный код этого программного обеспечения открытым.
Поскольку она бесплатна, MySQL стала использоваться для многих веб-приложений. Вот те немногие сайты и приложения, которые его применяют:

  • WordPress
  • LinkedIn
  • Twitter
  • Kayak
  • Walmart.com
  • Википедия
  • YouTube

Другие популярные системы управления контентом (CMS), такие как Joomla, Drupal, фреймворк Ruby on Rails, используют MySQL. Надеемся, вы поняли основную идею. Если хотите разрабатывать или взламывать веб-приложения, вы должны знать MySQL. Итак, начнем.

Шаг 1. Запустите MySQL

К счастью, в BackTrack уже установлена MySQL (если вы используете другой дистрибутив, то можете скачивать и устанавливать MySQL из репозиториев) и ее можно запустить или прервать ее работу прямо из графической оболочки. Давайте запустим сервис MySQL.

Когда мы это сделаем, то увидим примерно такое окно как на скриншоте ниже. Оно ненадолго появится, а затем исчезнет.

Читать также:  Как взламывать Wi-Fi: начинаем с терминов и технологий

Шаг 2. Войдите в MySQL

Теперь, когда сервис MySQL запущен, начинаем ее использовать. Во-первых, нам нужно авторизоваться в системе, зайдя в нее определенным образом.
Откройте терминал и введите:

mysql -u root -p

Вам будет предложено ввести пароль, который в BackTrack является словом «toor». В других системах пароль суперпользователя MySQL может быть другим. Обратите внимание, что хотя имя пользователя и пароль для MySQL такие же, как имя пользователя и пароль BackTrack, такое совпадение вовсе не обязательно для других дистрибутивов Linux и установленных MySQL. Имена пользователей и пароли для операционной системы и для MySQL как правило разные.
Этот синтаксис mysql -u <username> -p работает, если мы пытаемся получить доступ к базе данных MySQL на нашем рабочем компьютере (localhost). Команда по умолчанию использует экземпляр MySQL, запущенный на локальном хосте, если не указывается имя удаленного хоста или IP-адрес. Для удаленного доступа (и это будет иметь место в случае хакинга), нам необходимо указать имя удаленного хоста или IP-адрес системы, на которой размещена база данных MySQL, например:

mysql -u root -p 192.168.1.101

Команда установит соединение с экземпляром MySQL по адресу 192.168.1.101 и затем предложит ввести пароль.
Это открывает интерфейс командной строки MySQL, который имеет приглашение mysql>. Как и Microsoft SQL Server, у MySQL есть как родной графический интерфейс (MySQL Workbench), так и сторонний (Navicat или TOAD для MySQL). Давайте сначала посмотрим на интерфейс командной строки, а затем перейдем к интерфейсу с GUI.
Интерфейс командной строки может стать нашим лучшим хакерским инструментом для использования MySQL. Поэтому мы должны сосредоточиться именно на его использовании. Маловероятно, что при осуществлении несанкционированного доступа к базе данных вам будет предоставлен простой в использовании графический интерфейс.

Обратите внимание, этот скриншот напоминает нам о том, что все команды заканчиваются на «;» или «\g» (в отличие от Microsoft SQL Server), а также о том, что мы можем получить доступ к справке, набрав help; или \h.
Поскольку мы теперь залогинены как суперпользователь (root), мы можем беспрепятственно перемещаться по базе данных. Если мы вошли в систему как обычный пользователь, то наша навигация будет ограничена теми правами, которые были нам предоставлены суперпользователем.

Читать также:  Как отслеживать местоположение человека без его ведома с помощью iPhone

Шаг 3. Просмотр существующих баз данных

Теперь, когда мы вошли в базу данных MySQL с правами root, наш следующий шаг — выяснить, есть ли базы данных, которые стоит взломать. Чтобы просмотреть список существующих баз, просто введите:

show databases;


Ха! Мы обнаружили, что есть база данных с именем «creditcardnumbers», которую стоит изучить повнимательнее.

Шаг 4. Соединение с базой данных

После того, как мы вошли в MySQL и нашли интересующую нас базу данных, следующим шагом будет подключение к данной конкретной базе. В MySQL, как и в других системах управления, мы можем подключиться к интересующей нас базе, набрав use <databasename>. Поскольку мы теперь знаем, что интересующая нас база называется «creditcardnumbers», просто введем:

use creditcardnumbers;


Как видно на скриншоте, MySQL отвечает нам «Database changed». Это значит, что мы подсоединились к базе данных «creditcardnumbers».
Разумеется, вы должны использовать подходящее имя базы данных, поскольку здесь мы использовали «creditcardnumbers». Но маловероятно, что администратор будет настолько добр и услужлив, что назовет базу данных легко узнаваемым именем. Поэтому вам может понадобиться провести небольшую исследовательскую работу, чтобы найти интересующую базу данных.

Шаг 5. Определение таблиц

Теперь мы подключены к «creditcardnumbers», и можем немного покопаться в ней, чтобы посмотреть, что там есть интересного. Мы сможем узнать, какие таблицы находятся в этой базе данных, набрав:

show tables;


На скриншоте, приведенном выше, видно, что в этой базе есть только одна таблица, которая называется «cardnumbers». Как правило, в базах данных находится много таблиц, но сейчас нам повезло, поэтому мы можем сосредоточить внимание только на этой таблице.

Шаг 6. Чтобы определить структуру, опишите таблицу

Поскольку мы сосредоточим усилия на этой таблице, нам нужно будет понять ее структуру. Понимание структуры имеет решающее значение для успешного взлома.
Мы сможем увидеть структуру таблицы, набрав:

describe cardnumbers;


MySQL отвечает критически важной информацией о структуре таблицы. Мы можем видеть каждое из полей и их тип данных (varchar или int), будет ли он принимать NULL, ключ, значения по умолчанию и extra данные.

Читать также:  Основы Linux.Часть 11 (веб-сервер Apache)

Шаг 7. Выборка данных

Чтобы действительно увидеть данные в таблице, мы можем использовать команду SELECT. Команде SELECT нужно знать следующее:
Таблицу, которую мы хотим просмотреть
Столбцы в этой таблице, которые мы хотим просмотреть
Мы должны использовать такой формат команды:

SELECT <columns> FROM <table>

В качестве удобного ярлыка на тот случай, если мы захотим увидеть данные из всех столбцов, мы можем использовать звездочку («*») в качестве подставляемого знака вместо ввода имени каждого столбца. Итак, чтобы увидеть дамп всех данных из таблицы cardnumbers, мы вводим:

SELECT * FROM cardnumbers;


Как мы видим, MySQL выводит всю информацию из таблицы cardnumbers на экран.

Экспорт данных

Теперь, когда мы знаем, где хранятся данные, нужно экспортировать их, чтобы мы могли их использовать. Для этого у MySQL есть команда mysqldump. Как правило, она используется для создания резервной копии базы данных. Вы можете запустить ее из любой командной строки, но при этом вам понадобятся:

  1. Имя пользователя (root)
  2. Пароль для этого имени пользователя (toor)
  3. Имя базы данных, из которой вы хотите получать данные (creditcardnumbers)
  4. Таблица в базе данных, которую вы хотите получить (cardnumbers)
  5. Путь, куда вы хотите получить дамп базы данных (/tmp)

Итак, чтобы получить дамп данных, в командной строке просто введите:

mysql --tab = /tmp --user root -p creditcardnumbers cardnumbers;

Это отправит данные в ту директорию, которую мы указали, в данном случае это — /tmp.

Отлично!

Как мы видим на скриншоте ниже (после того, как мы перешли в директорию /tmp, а затем просмотрели ее содержание), мы создали два файла: cardnumbers.sql и cardnumbers.txt. Первый файл, cardnumbers.sql, содержит скрипт для создания таблицы, необходимой для хранения данных, а второй, cardnumbers.txt, содержит сами данные.

Мы успешно получили из этой базы данных ключевую и очень ценную информацию. По сути, нашли золотое руно всех хакеров!

Поскольку MySQL очень важна для веб-приложений, мы сделаем несколько статей для полного ее понимания, расскажем немного о том, как найти, и, наконец, как взломать. Поэтому возвращайтесь обязательно, будет много интересного!

Предыдущие статьи ( 1, 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13).

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