Добро пожаловать обратно, мои начинающие кибервоины!
В предыдущих уроках на Hackers-Arise мы использовали BurpSuite для тестирования, оценки и взлома веб-приложений. BurpSuite входит в набор инструментов, с которым должен быть знаком каждый хакер, пентестер или охотник за багами!
В этом руководстве мы будем использовать BurpSuite для фаззинга веб-приложения на предмет уязвимостей. Фаззинг — это процесс отправки случайных или псевдослучайных данных в приложение с целью вызвать его сбой и тем самым выявить уязвимости. Если мы можем вызвать сбой приложения случайными входными данными, мы можем отследить причину сбоя и, возможно, использовать её для эксплуатации приложения. Например, если мы отправим слишком длинные входные данные для обработки приложением, и оно рухнет, это может указывать на возможное переполнение буфера.
В этом руководстве мы будем использовать BurpSuite для отправки специально сформированных входных данных в веб-приложение с целью обнаружения SQL-инъекций и уязвимостей XXE. Это отличный метод поиска уязвимостей, доступных для программ bug bounty!
Шаг №1: Запустите Kali и OWASP-BWA
Первый шаг, конечно, — запустить Kali и OWASP-BWA.
Теперь откройте браузер и нажмите на приложение Mutillidae II. Приложение должно открыться, как показано ниже.
Шаг 2: Откройте BurpSuite.
Затем запустите BurpSuite в Kali.
В браузере откройте OWASP2013->Injection (SQL)->SQLi-Bypass Authentication ->Login.
Откроется экран, аналогичный показанному ниже.
Теперь, включив функцию Intercept (и включив прокси-сервер браузера) в прокси-сервере BurpSuite, введите любое случайное имя пользователя и пароль. Я использовал «test» и «complexpassword». Прокси-сервер перехватит или перехватит запрос, как показано ниже.
Щелкните правой кнопкой мыши и выберите «Отправить злоумышленнику».
Теперь нажмите на вкладку «Нарушитель» в верхней части страницы. Откроется окно «Нарушитель» с четырьмя вкладками: «Цель», «Позиции», «Полезная нагрузка» и «Параметры». Выберите «Позиции». Окно «Нарушитель» подсветит несколько потенциальных позиций полезной нагрузки. Нажмите кнопку «Очистить» справа. Выделите поле имени пользователя и нажмите «Добавить».
Затем нажмите «Полезные данные». Здесь нужно будет добавить полезные данные или список строк для фаззинга. При фаззинге у нас есть несколько вариантов входных строк. Мы можем отправлять миллионы случайных или псевдослучайных входных данных, что может занять часы или дни, или отправлять специально созданные входные данные для поиска определённого типа уязвимости. В данном случае мы ищем именно уязвимости SQLi, поэтому давайте используем более короткий и конкретный список входных данных SQLi.
Мы можем зайти в терминал в Kali и выполнить поиск списков слов для нечетких строк, введя:
kali > найти списки слов | grep fuzz
Это позволит найти все списки слов и отфильтровать их по слову «fuzz». Их много, но давайте используем один, специально предназначенный для SQL, например, usr/share/wfuzz/wordlists/Injections/SQL.txt . Этот список содержит множество строк, которые потенциально могут спровоцировать SQL-инъекцию. Конечно, вы можете использовать любой из этих списков слов для поиска уязвимостей, но этот специально
предназначен для поиска SQL-инъекций.
На экране полезной нагрузки нажмите кнопку «Загрузить» и введите путь к файлу SQL.txt.
Наконец, нажмите «Начать атаку», и BurpSuite начнет пробовать каждую из строк в имени пользователя или любом выбранном поле.
Чтобы обнаружить потенциальные уязвимости к SQL-инъекции в этой форме приложения, обратите внимание на аномалии в статусе и размере ответов. Почти все эти ответы имеют длину 50773 символов, но некоторые из них больше. Более длинные ответы могут указывать на успешную SQL-инъекцию.
Шаг №3: Фаззинг для выявления уязвимостей XXE
Мы можем провести тот же тип фаззинга для проверки на уязвимости XXE, но со списком входных данных, специфичных для XML. Подробнее об уязвимостях XXE в веб-приложениях можно узнать здесь.
Для проверки на наличие уязвимостей XXE перейдите к XML-валидатору в Mutillidae.
Откройте окно, как показано ниже, и включите функцию Intercept в прокси-сервере BurpSuite, введите любые данные в окно XML и нажмите кнопку Validate XML.
Прокси-сервер с «перехватом» запроса, аналогичный приведенному ниже.
Теперь щёлкните правой кнопкой мыши по прокси-серверу и выберите «Отправить нарушителю». Откройте Intruder и очистите позиции, как вы сделали выше. Выделите введённый вами адрес (в моём случае я просто ввёл «222222») и нажмите «Добавить».
Затем щелкните вкладку «Полезные данные» и загрузите файл фаззинга XXE из каталога списка слов wfuzz (другие строки фаззинга XXE доступны в /Seclists/Fuzzing/XXE-Fuzzing.txt).
Обратите внимание, что список содержит строки, связанные с XML.
Наконец, нажмите кнопку «Начать атаку».
Ваш Burpsuite попытается отправить эти XML-строки валидатору. Как и в случае с фаззингом SQL-инъекций, описанном выше, обратите внимание на различия в статусе ошибки и длине, чтобы обнаружить аномалии, указывающие на потенциальную уязвимость.
Краткое содержание
Фаззинг может быть мощным методом поиска скрытых уязвимостей в веб-приложениях. BurpSuite позволяет нам проводить фаззинг практически любой формы в веб-приложении и отправлять в неё специально созданные или псевдослучайные входные данные. Анализируя результаты на наличие аномалий в размере и статусе, мы можем обнаружить потенциальные уязвимости. BurpSuite можно использовать для фаззинга каждого входного значения в форме, чтобы найти уязвимости.
В предыдущих уроках на Hackers-Arise мы использовали BurpSuite для тестирования, оценки и взлома веб-приложений. BurpSuite входит в набор инструментов, с которым должен быть знаком каждый хакер, пентестер или охотник за багами!
В этом руководстве мы будем использовать BurpSuite для фаззинга веб-приложения на предмет уязвимостей. Фаззинг — это процесс отправки случайных или псевдослучайных данных в приложение с целью вызвать его сбой и тем самым выявить уязвимости. Если мы можем вызвать сбой приложения случайными входными данными, мы можем отследить причину сбоя и, возможно, использовать её для эксплуатации приложения. Например, если мы отправим слишком длинные входные данные для обработки приложением, и оно рухнет, это может указывать на возможное переполнение буфера.
В этом руководстве мы будем использовать BurpSuite для отправки специально сформированных входных данных в веб-приложение с целью обнаружения SQL-инъекций и уязвимостей XXE. Это отличный метод поиска уязвимостей, доступных для программ bug bounty!
Шаг №1: Запустите Kali и OWASP-BWA
Первый шаг, конечно, — запустить Kali и OWASP-BWA.
Затем запустите BurpSuite в Kali.
В браузере откройте OWASP2013->Injection (SQL)->SQLi-Bypass Authentication ->Login.
Щелкните правой кнопкой мыши и выберите «Отправить злоумышленнику».
Теперь нажмите на вкладку «Нарушитель» в верхней части страницы. Откроется окно «Нарушитель» с четырьмя вкладками: «Цель», «Позиции», «Полезная нагрузка» и «Параметры». Выберите «Позиции». Окно «Нарушитель» подсветит несколько потенциальных позиций полезной нагрузки. Нажмите кнопку «Очистить» справа. Выделите поле имени пользователя и нажмите «Добавить».
Затем нажмите «Полезные данные». Здесь нужно будет добавить полезные данные или список строк для фаззинга. При фаззинге у нас есть несколько вариантов входных строк. Мы можем отправлять миллионы случайных или псевдослучайных входных данных, что может занять часы или дни, или отправлять специально созданные входные данные для поиска определённого типа уязвимости. В данном случае мы ищем именно уязвимости SQLi, поэтому давайте используем более короткий и конкретный список входных данных SQLi.
Мы можем зайти в терминал в Kali и выполнить поиск списков слов для нечетких строк, введя:
kali > найти списки слов | grep fuzz
Это позволит найти все списки слов и отфильтровать их по слову «fuzz». Их много, но давайте используем один, специально предназначенный для SQL, например, usr/share/wfuzz/wordlists/Injections/SQL.txt . Этот список содержит множество строк, которые потенциально могут спровоцировать SQL-инъекцию. Конечно, вы можете использовать любой из этих списков слов для поиска уязвимостей, но этот специально
предназначен для поиска SQL-инъекций.
На экране полезной нагрузки нажмите кнопку «Загрузить» и введите путь к файлу SQL.txt.
Наконец, нажмите «Начать атаку», и BurpSuite начнет пробовать каждую из строк в имени пользователя или любом выбранном поле.
Чтобы обнаружить потенциальные уязвимости к SQL-инъекции в этой форме приложения, обратите внимание на аномалии в статусе и размере ответов. Почти все эти ответы имеют длину 50773 символов, но некоторые из них больше. Более длинные ответы могут указывать на успешную SQL-инъекцию.
Шаг №3: Фаззинг для выявления уязвимостей XXE
Мы можем провести тот же тип фаззинга для проверки на уязвимости XXE, но со списком входных данных, специфичных для XML. Подробнее об уязвимостях XXE в веб-приложениях можно узнать здесь.
Для проверки на наличие уязвимостей XXE перейдите к XML-валидатору в Mutillidae.
Откройте окно, как показано ниже, и включите функцию Intercept в прокси-сервере BurpSuite, введите любые данные в окно XML и нажмите кнопку Validate XML.
Прокси-сервер с «перехватом» запроса, аналогичный приведенному ниже.
Теперь щёлкните правой кнопкой мыши по прокси-серверу и выберите «Отправить нарушителю». Откройте Intruder и очистите позиции, как вы сделали выше. Выделите введённый вами адрес (в моём случае я просто ввёл «222222») и нажмите «Добавить».
Затем щелкните вкладку «Полезные данные» и загрузите файл фаззинга XXE из каталога списка слов wfuzz (другие строки фаззинга XXE доступны в /Seclists/Fuzzing/XXE-Fuzzing.txt).
Обратите внимание, что список содержит строки, связанные с XML.
Наконец, нажмите кнопку «Начать атаку».
Ваш Burpsuite попытается отправить эти XML-строки валидатору. Как и в случае с фаззингом SQL-инъекций, описанном выше, обратите внимание на различия в статусе ошибки и длине, чтобы обнаружить аномалии, указывающие на потенциальную уязвимость.
Краткое содержание
Фаззинг может быть мощным методом поиска скрытых уязвимостей в веб-приложениях. BurpSuite позволяет нам проводить фаззинг практически любой формы в веб-приложении и отправлять в неё специально созданные или псевдослучайные входные данные. Анализируя результаты на наличие аномалий в размере и статусе, мы можем обнаружить потенциальные уязвимости. BurpSuite можно использовать для фаззинга каждого входного значения в форме, чтобы найти уязвимости.