Как пользоваться burp suite в kali linux

Обновлено: 06.07.2024

Burp Suite - это мощный набор инструментов для тестирования безопасности веб-приложений и сайтов. С помощью этого инструмента можно протестировать буквально все, что вы захотите. Программу могут использовать не только профессионалы, но и новички с минимальным количеством усилий для ее освоения. Программа написана на Java, поэтому может работать на различных платформах, например, Windows, Linux или Mac.

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

Установка Burp Suite

Вы можете загрузить программу из официального сайта. Для этого нажмите ссылку "Get Burp", затем выберите версию "Free":

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


Теперь вы знаете как установить Burp Suite.

Запуск Burp Suite

Для запуска программы вам понадобится установленная Java машина. Откройте командную строку в вашей системе:

  • В Windows откройте меню "Пуск" и запустите "cmd.exe";
  • В Mac OS X откройте главное меню, затем "Приложения", "Утилиты" - "terminal.app";
  • В Linux запустите терминал из главного меню или нажмите Ctrl+Alt+T.

Затем наберите такую команду:

Если java установлена, то вы узнаете ее версию, если же нет, то вам будет нужно ее установить. Дальше вы можете запустить программу просто выполнив двойной клик по файлу .jar. Но можно запускать и через терминал:

java -jar -Xmx1024m /path/to/burp.jar

Здесь 1024 - это объем оперативной памяти, который компьютер выделит программе. Если все хорошо, то вы увидите заставку:


Дальше идет первоначальная настройка программы. В первом окне выберите "Temponary project":

Затем выберите "Use Burp defaults":

Настройка burp suite завершена.

Как пользоваться Burp Suite

В набор инструментов BurpSuite входят такие программы, дальше мы кратко рассмотрим как пользоваться каждым из них:

Чаще всего Burp Suite используется в качестве прокси, именно с него мы и начнем.

1. Настройка прокси

Дальше вам нужно указать адрес прокси localhost, а порт 8080:




Если не сработало, убедитесь, что включена опция "Intercept is on". Дальше у вас есть три кнопки

  • "Forward" - пропустить пакет дальше;
  • "Drop" - отбросить пакет;
  • "Action" - действия с пакетом.

Пока запрос не отправлен, вы можете отредактировать его так, как вам нужно. Например, изменим значение поля Accept-Encoding на text, чтобы не использовалось шифрование. Далее нажмите "Action" -> "Do intercept" -> "Responce to this request":


Здесь мы говорим, что хотим перехватить ответ на этот запрос, далее нажмите "Forward":


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


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

Все перехваченные запросы можно видеть на вкладке "HTTP history":


Дальше нажмите "Add" чтобы добавить правило. Тут нужно указать место, где будет выполняться замена, например "Response Body" - в теле ответа. Затем слово или регулярное выражение, которое нужно заменить и на что заменить:


После сохранения правила, нужно поставить напротив него галочку, чтобы его активировать:

Теперь все вхождения указанного слова будут заменяться в получаемых ответах. Только не забудьте про кэш браузера и ответ 304 Not Modified.


2. Использование Intruder

Замена - это самое простое, что можно сделать с помощью Intruder. Этот инструмент позволяет выполнять атаки различных видов, например, атаку перебора пароля, идентификаторов, фаззинг и многое другое. Например, выполним попытку простого анализа страницы на уязвимость к SQL инъекциям. Для этого сначала перейдите на вкладку "Intruder", затем введите в поле URL.

Но будет лучше, если вы возьмете цель на вкладке "Proxy", тогда программа автоматически заполнит тело запроса и вам не понадобится писать его вручную. Для этого откройте "Proxy" -> "HTTP history", а затем найдите нужную ссылку:

Осталось только нажать на ссылке правой кнопкой и выбрать "Send to Intruder". Затем запрос появится там, где нужно:

На вкладке "Positions" нужно отметить участки текста или позиции, в которые вы будете подставлять свои значения. Для этого отметьте участок текста и нажмите "Add $$":

Еще, на этой же вкладке нужно выбрать тип атаки. Доступны такие варианты:

  • Sniper - одно поле - один payload;
  • Battering ram - все поля - один payload;
  • Pitchfork - то же, что и первый вариант, но позволяет связывать между собой данные из разных полей;
  • Сluster bomb - поочередно перебирает все данные по всем полям.

В нашем примере мы будем использовать Sniper. Осталось перейти на вкладку "Payloads" и установить варианты нагрузки, которые мы будем перебирать. Здесь выберите тип атаки "Simply List":

А затем с помощью кнопки "Add" добавьте несколько пунктов. Осталось нажать кнопку "Start Attack" чтобы начать проверку:

Атака откроется в новом окне, здесь вы сможете увидеть результат, в таблице сразу выводится статус код и размер ответа. Далее вы можете более подробно посмотреть ответ для интересующих вас запросов на вкладке "Response":

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

3. Использование Repeater

Того что мы рассмотрели уже достаточно чтобы знать как пользоваться Burp Suite на уровне новичка. Но мы рассмотрим еще один инструмент, который применяется для исследования одного запроса. Это Repeater. Чтобы добавить URL, вам нужно опять найти ее на вкладке "Proxy", а потом нажать "Send to Repeater":

Дальше, на вкладке "Repeater" перед вами появится нужный запрос:

Настройте нужные параметры или измените необходимым образом ссылку и нажмите "Go" чтобы выполнять запрос. Так вам будет проще понять как правильно сделать перед тем, как переходить к массовым запросам в Intruder.

Выводы

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

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

Установка и запуск Burp Suite

Burp Suite уже установлен в таких дистрибутивах как Kali Linux или Parrot Securiti. Там установлена версия Community Edition. Это бесплатная версия с ограниченным функционалом, но, тем не менее, её вполне можно использовать, не смотря на ограничения.

При запуске мы увидим окно создания проекта.

Burp Suite

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

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

Определившись с настройками проекта, жмем кнопку Start Burp.

Интерфейс Burp Suite

Burp Suite

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

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

Настройка Burp Suite для работы с браузером

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

Настройка Burp Suite

Для начала в Burp открываем вкладку Proxy, и в ней переходив в Options. Здесь в столбце Interface должно быть написано: 127.0.0.1:8080. Это означает что программа будет использовать петлевой интерфейс, а прокси-слушатель будет открыт на порту 8080.

Burp Suite

Настройки браузера

Burp Suite

В принципе все готово. Остался один небольшой нюанс, при заходе на сайты которые используют SSL сертификат (т.е. почти на все) браузер будет ругаться на сертификат. Это происходит потому что Burp Suite генерирует свой сертификат и сам его подписывает. Потому, чтобы браузер не ругался, нужно сертификат Burp добавить в браузер как доверенный.

Intruder

Ещё один инструмент о котором обязательно стоит сказать это Intruder. Крайне полезная приблуда кстати. Но это если научится ей пользоваться.

Смысл заключается в том что Intruder обрабатывает запросы с разными параметрами. При этом показывая вариант запроса и ответ на него, анализируя ответ на предмет того как отреагирует цель на изменение запроса. Таким способом можно тестировать на предмет вообще всего чего угодно. Хочешь sql-инъекции, хочешь брутфорс, можно dos-атаки делать. Можно просто какие-то данные собирать, например идентификаторы сессий или какие-нибудь скрытые страницы.

В целом, если коротко, принцип работы Intruder можно описать так: мы создаем первоначальный запрос, в котором, с использованием маркеров, помечаем какие значение нужно впоследствии подменять. А потом варианты его модификации т.е. то что будет подставляться в запрос. Запускаем и получаем результат, т.е. какой ответ получен на кокой-то вариант запроса.

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

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

Как вы думаете, что самое популярное в киберпространстве? Верно, это веб-приложения.

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

Атака на веб-приложения при помощи Burp Suite и SQL инъекции Web, Kali Linux, Уязвимость, Длиннопост

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

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

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

Что такое SQL инъекция?

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

Подобный тип атаки позволяет получить конфиденциальную информацию, модифицировать существующие данные или даже полностью вывести из строя базу данных. Наиболее распространенный вектор – через входные данные (формы авторизации, текстовые поля, загрузку файлов и так далее).

Нашей целью будет Mutillidae, намеренно уязвимое веб-приложение, являющееся частью проекта Metasploitable 2 (уязвимая виртуальная линуксовая машина, используемая для тестирования и других практических целей). Мы будем подключаться к Metasploitable 2 из изолированной сети. В качестве рабочей системы будет использоваться Kali Linux.

Шаг 1. Установка виртуальной машины Metasploitable 2

Burp Suit – популярный инструмент, который можно использовать для автоматизации тестирования веб-приложений на предмет наличия разного рода уязвимостей. В Kali Linux присутствует по умолчанию. Но сначала нужно настроить целевую систему.

В качестве примера в этом руководстве будет использоваться виртуальная машина Metasploitable 2, которую можно скачать с сайта компании Rapid7. Также подойдет и любая другая уязвимая виртуальная машина. Установка ничем не отличается от установки обычных виртуальных машин в вашей системе.

При использовании уязвимых систем следует учитывать риски со стороны внешних сетей. Соответственно, если вы полностью не отключены от интернета, следует использовать трансляцию сетевых адресов (NAT) или режим host-only.

После того как всё настроено, авторизуйтесь в Metasploitable 2 (имя пользователя и пароль одинаковые msfadmin) и выясните IP адрес при помощи утилиты ifconfig (параметр inet addr у интерфейса eth0), который будет использоваться во время тестирования.

Шаг 2. Настройка приложения Mutillidae

После выяснения IP адреса виртуальной подключитесь к веб-серверу при помощи браузера. Я использую Firefox в Kali Linux.

Атака на веб-приложения при помощи Burp Suite и SQL инъекции Web, Kali Linux, Уязвимость, Длиннопост

Кликните на ссылку Mutillidae для входа в веб-приложение и зайдите в раздел OWASP Top 10. Выберите Injection (SQL), затем Extract Data, затем User Info. Появится форма авторизации.

Атака на веб-приложения при помощи Burp Suite и SQL инъекции Web, Kali Linux, Уязвимость, Длиннопост

Шаг 3: Настройка браузера для работы с Burp Suite

Теперь нужно настроить браузер для работы с Burp Suite, функционирующего в качестве прокси-сервера для перехвата и модификации запросов. Опять же я буду использовать Firefox, но для других браузеров весь процесс будет аналогичным.

Атака на веб-приложения при помощи Burp Suite и SQL инъекции Web, Kali Linux, Уязвимость, Длиннопост

Шаг 4. Перехват запросов при помощи Burp Suite

Откройте Burp Suite в Kali Linux, начните новый проект, а затем зайдите во вкладку Proxy и убедитесь, что нажата кнопка Intercept is on, чтобы мы могли изменять запросы, исходящие от веб-страницы и вставлять различные значения для тестирования SQL инъекции. На странице авторизации я ввел произвольное имя пользователя. Вы можете наблюдать чистый запрос, параметры, заголовки и даже информацию в шестнадцатеричной форме.

Атака на веб-приложения при помощи Burp Suite и SQL инъекции Web, Kali Linux, Уязвимость, Длиннопост

Нас интересует поле имени пользователя, которое мы будем изменять для тестирования SQL инъекции. Нажмите на кнопку Action, а затем на Send to Intruder. Альтернативный вариант: кликнуть правой кнопкой мыши в области запроса и выполнить те же самые операции.

Шаг 5. Настройка позиций и полезных нагрузок в Burp Suite

Далее зайдите во вкладку Intruder и кликните на Positions. Burp Suite автоматически конфигурирует позиции, куда вставляются полезные нагрузки во время отсылки запроса, однако поскольку нас интересует только поле username, нужно очистить все позиции, нажав кнопку Clear справа. Выделите значение, введенное в качестве имени пользователя, и нажмите на кнопку Add. Мы будем реализовывать атаку Sniper, когда в полезной нагрузке используется список значений (каждое – однократно).

Атака на веб-приложения при помощи Burp Suite и SQL инъекции Web, Kali Linux, Уязвимость, Длиннопост

После настройки позиции переходим к конфигурированию полезной нагрузки. Для работы с базой данных в SQL запросах могут использоваться различные операторы. Например, оператор SELECT предназначен для извлечения информации, и наш запрос, отсылаемый во время авторизации, выглядел бы примерно так:

SELECT username, password FROM users WHERE username='myname' AND password='mypassword';

Рассмотрим классическую команду в SQL инъекции 1=1--. Ниже показан запрос, формируемый после заполнения поля login.

SELECT username, password FROM users WHERE username='' or 1=1-- AND password='';

Кликните на вкладку Payloads и зайдите в раздел Payload Options. Пока будем использовать стандартные настройки. Здесь мы можем указать полезные нагрузки в виде простого списка, добавляя по одной или загрузив уже существующий список. В Kali есть несколько словарей, включая специально для тестирования SQL инъекций. Нажмите на кнопку Load и загрузите файл /usr/share/wordlists/wfuzz/injection/SQL.txt. Теперь всё готово для реализации нашего сценария.

Атака на веб-приложения при помощи Burp Suite и SQL инъекции Web, Kali Linux, Уязвимость, Длиннопост

Реализация атаки при помощи Burp Suite

Кликните на кнопку Start attack, после чего появится новое окно с отображением всего процесса. Здесь вы можете видеть состояние запросов, полезные нагрузки и статус. Будьте терпеливы, поскольку на отработку большого списка может потребоваться много времени.

Атака на веб-приложения при помощи Burp Suite и SQL инъекции Web, Kali Linux, Уязвимость, Длиннопост

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

Атака на веб-приложения при помощи Burp Suite и SQL инъекции Web, Kali Linux, Уязвимость, Длиннопост

Шаг 7. Анализ результатов работы Burp Suite

Burp Suite полезен в том числе и потому, что вы можете отобразить веб-страницу, возвращаемую ответом, если зайдете во вкладку Response и кликните на Render. На рисунке ниже видно, что наша SQL инъекция выполнилась успешно, и теперь у нас есть перечень имен пользователей и паролей. Если бы мы работали с административной панелью, то получили бы учетную запись администратора со всеми вытекающими последствиями.

Атака на веб-приложения при помощи Burp Suite и SQL инъекции Web, Kali Linux, Уязвимость, Длиннопост

SQL инъекция в дикой природе

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

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

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

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

image

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

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

Что такое SQL инъекция?

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

Подобный тип атаки позволяет получить конфиденциальную информацию, модифицировать существующие данные или даже полностью вывести из строя базу данных. Наиболее распространенный вектор – через входные данные (формы авторизации, текстовые поля, загрузку файлов и так далее).

Нашей целью будет Mutillidae, намеренно уязвимое веб-приложение, являющееся частью проекта Metasploitable 2 (уязвимая виртуальная линуксовая машина, используемая для тестирования и других практических целей). Мы будем подключаться к Metasploitable 2 из изолированной сети. В качестве рабочей системы будет использоваться Kali Linux.

Шаг 1. Установка виртуальной машины Metasploitable 2

Burp Suit – популярный инструмент, который можно использовать для автоматизации тестирования веб-приложений на предмет наличия разного рода уязвимостей. В Kali Linux присутствует по умолчанию. Но сначала нужно настроить целевую систему.

В качестве примера в этом руководстве будет использоваться виртуальная машина Metasploitable 2, которую можно скачать с сайта компании Rapid7. Также подойдет и любая другая уязвимая виртуальная машина. Установка ничем не отличается от установки обычных виртуальных машин в вашей системе.

При использовании уязвимых систем следует учитывать риски со стороны внешних сетей. Соответственно, если вы полностью не отключены от интернета, следует использовать трансляцию сетевых адресов (NAT) или режим host-only.

После того как всё настроено, авторизуйтесь в Metasploitable 2 (имя пользователя и пароль одинаковые msfadmin) и выясните IP адрес при помощи утилиты ifconfig (параметр inet addr у интерфейса eth0), который будет использоваться во время тестирования.

Шаг 2. Настройка приложения Mutillidae

После выяснения IP адреса виртуальной подключитесь к веб-серверу при помощи браузера. Я использую Firefox в Kali Linux.


Рисунок 1: Домашняя страница виртуальной машины

Кликните на ссылку Mutillidae для входа в веб-приложение и зайдите в раздел OWASP Top 10. Выберите Injection (SQL), затем Extract Data, затем User Info. Появится форма авторизации.


Рисунок 2: Форма авторизации для просмотра информации и пользователе

Шаг 3: Настройка браузера для работы с Burp Suite

Теперь нужно настроить браузер для работы с Burp Suite, функционирующего в качестве прокси-сервера для перехвата и модификации запросов. Опять же я буду использовать Firefox, но для других браузеров весь процесс будет аналогичным.


Рисунок 3: Параметры браузера для работы с Burp Suite

Шаг 4. Перехват запросов при помощи Burp Suite

Откройте Burp Suite в Kali Linux, начните новый проект, а затем зайдите во вкладку Proxy и убедитесь, что нажата кнопка Intercept is on, чтобы мы могли изменять запросы, исходящие от веб-страницы и вставлять различные значения для тестирования SQL инъекции. На странице авторизации я ввел произвольное имя пользователя. Вы можете наблюдать чистый запрос, параметры, заголовки и даже информацию в шестнадцатеричной форме.


Рисунок 4: Запрос, перехваченный при помощи Burp Suite

Нас интересует поле имени пользователя, которое мы будем изменять для тестирования SQL инъекции. Нажмите на кнопку Action, а затем на Send to Intruder. Альтернативный вариант: кликнуть правой кнопкой мыши в области запроса и выполнить те же самые операции.

Шаг 5. Настройка позиций и полезных нагрузок в Burp Suite

Далее зайдите во вкладку Intruder и кликните на Positions. Burp Suite автоматически конфигурирует позиции, куда вставляются полезные нагрузки во время отсылки запроса, однако поскольку нас интересует только поле username, нужно очистить все позиции, нажав кнопку Clear справа. Выделите значение, введенное в качестве имени пользователя, и нажмите на кнопку Add. Мы будем реализовывать атаку Sniper, когда в полезной нагрузке используется список значений (каждое – однократно).


Рисунок 5: Настройка позиций и значений в полезной нагрузке

После настройки позиции переходим к конфигурированию полезной нагрузки. Для работы с базой данных в SQL запросах могут использоваться различные операторы. Например, оператор SELECT предназначен для извлечения информации, и наш запрос, отсылаемый во время авторизации, выглядел бы примерно так:

SELECT username, password FROM users WHERE username='myname' AND password='mypassword';

Рассмотрим классическую команду в SQL инъекции 1=1--. Ниже показан запрос, формируемый после заполнения поля login.

SELECT username, password FROM users WHERE username='' or 1=1-- AND password='';

Фактически одиночные кавычки превращают первую часть в пустую строку, а выражение 1=1 всегда равно истине. Таким образом, условие для имени пользователя должно быть «пустым» или «истинным». Двойной дефис комментирует остальную часть запроса, и поле password игнорируется. Поскольку выражение «пустота» или «истина» всегда равно истине, а поле password игнорируется, база данных вернет информацию об учетной записи.

Кликните на вкладку Payloads и зайдите в раздел Payload Options. Пока будем использовать стандартные настройки. Здесь мы можем указать полезные нагрузки в виде простого списка, добавляя по одной или загрузив уже существующий список. В Kali есть несколько словарей, включая специально для тестирования SQL инъекций. Нажмите на кнопку Load и загрузите файл /usr/share/wordlists/wfuzz/injection/SQL.txt. Теперь всё готово для реализации нашего сценария.


Рисунок 6: Параметры полезных нагрузок

Реализация атаки при помощи Burp Suite

Кликните на кнопку Start attack, после чего появится новое окно с отображением всего процесса. Здесь вы можете видеть состояние запросов, полезные нагрузки и статус. Будьте терпеливы, поскольку на отработку большого списка может потребоваться много времени.


Рисунок 7: Проверка списка полезных нагрузок

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


Рисунок 8: Содержимое отдельного запроса

Шаг 7. Анализ результатов работы Burp Suite


Рисунок 9: Содержимое запроса со строкой ' or 1=1 or "='

Burp Suite полезен в том числе и потому, что вы можете отобразить веб-страницу, возвращаемую ответом, если зайдете во вкладку Response и кликните на Render. На рисунке ниже видно, что наша SQL инъекция выполнилась успешно, и теперь у нас есть перечень имен пользователей и паролей. Если бы мы работали с административной панелью, то получили бы учетную запись администратора со всеми вытекающими последствиями.


Рисунок 10: Результат отработки SQL инъекции

SQL инъекция в дикой природе

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

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

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

Читайте также: