Web5: SQL-инъекция — некоторые методы обхода механизмов фильтрации

Web5: SQL-инъекция — некоторые методы обхода механизмов фильтрации

1. Усеките содержимое запроса

Если вы хотите игнорировать сценарии в запросе. Например, для обработки ниже запрос требует условия active=1, но мы можем комментировать (--, -- -, -+, #, /*, /**/, // , ;%00…) и игнорируй это. При майнинге мы часто не знаем, что делает оставшееся содержимое запроса, поэтому использование комментариев в этом случае очень эффективно.

Web5: SQL-инъекция — некоторые методы обхода механизмов фильтрации

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

Web5: SQL-инъекция — некоторые методы обхода механизмов фильтрации

2. Обход фильтрации ключевых слов

а. Встроенные комментарии

Встроенные комментарии очень эффективно используются для обхода фильтрации пробелов. Для обхода фильтрации пробелов можно использовать следующие символы: /**/, %20, %09, %0a, %0b, %0c, %0d, %a0). Например:

Web5: SQL-инъекция — некоторые методы обхода механизмов фильтрации

Или обойти фильтрацию ключевых слов (доступно в MySql). В приведенном ниже примере ключевые слова объединение и пароль находятся в черном списке, поэтому они заблокированы. Мы можем обойти это следующим образом:

Web5: SQL-инъекция — некоторые методы обхода механизмов фильтрации

б. Заменить ключевые слова

При использовании SQL-инъекции мы часто используем такие ключевые слова, как: Union, Select, Information_schema... Во многих случаях программисты просто заменяют эти ключевые слова:

Web5: SQL-инъекция — некоторые методы обхода механизмов фильтрации

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

Теперь вместо использования ключевого слова:

select, union…

Мы будем использовать:

SeLEcT, UniOn…

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

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

id=1+uniunionon+SeLselectecT+1,2,3-- -

После того, как веб-приложение отфильтрует объединение и выбор, у нас останется правильный запрос:

id=1+union+SeLecT+1,2,3-- -

в. Кодировка символов

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

Web5: SQL-инъекция — некоторые методы обхода механизмов фильтрации

3. Обход блоков одинарных и двойных кавычек

- Давайте рассмотрим пример, прежде чем изучать конкретно этот обход.

Web5: SQL-инъекция — некоторые методы обхода механизмов фильтрации

В этом сценарии у нас есть таблица в базе данных с именем пользователей. Следующая задача — узнать имя столбца в таблице, чтобы получить информацию о нем. Как и в приведенном выше запросе, мы используем условие: table_name='users'. Но если WAF блокирует как одинарные кавычки ('), так и двойные кавычки (""), мы больше не сможем использовать "пользователи" или "пользователи". Так как же решить эту проблему? Встроенная система баз данных предоставляет нам функцию, которая Очень хорошо решает эту проблему функция CHAR( ) (для Oracle это CHR()). Например, в приведенном выше запросе мы обойдем ее следующим образом:

Web5: SQL-инъекция — некоторые методы обхода механизмов фильтрацииWeb5: SQL-инъекция — некоторые методы обхода механизмов фильтрации

Программисты PHP хорошо знакомы с функцией addslashes(). Функция addslashes() добавляет перед специальными символами, такими как одинарная кавычка ('), двойная кавычка ("), обратная косая черта (\), символ NUL (нулевой байт) "\", чтобы помочь системе управления базой данных. Есть ли никаких сложностей и путаницы при обработке строк, содержащих эти символы?Таким образом, когда мы хотим внедрить в запрос по сценарию: name='someName' или '1'='1'-- результаты уже не такие, как мы ожидали.

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

4. Обход ошибки «Недопустимое сочетание параметров сортировки для операции UNION».

В некоторых системах управления (обычно встречающихся в MySql), когда для баз данных и таблиц задан режим сортировки, при использовании ключевого слова UNION будет сообщаться об ошибке «недопустимое сочетание параметров сортировки для операции UNION». Настройка параметров сортировки может быть обусловлена ​​намерением разработчика базы данных или настройками MySql по умолчанию. В случае использования объединения мы должны убедиться, что условие выбора значения в каждом поле должно иметь соответствующий тип кода. На мой взгляд, эта ошибка довольно распространена, особенно для CMS под управлением Apache MySql. Дополнительную информацию можно узнать по адресу: http://bugs.mysql.com/bug.php?id=57926.
В этом случае мы можем использовать способы преобразования в соответствующий тип кодировки.

Например, в следующем случае:

Web5: SQL-инъекция — некоторые методы обхода механизмов фильтрации

В приведенном выше запросе, если для столбца1 установлено, например, параметры сортировки Unicode-UTF8 или _latin1, то то, что выбрано из столбца2, необходимо будет преобразовать в соответствующий код. Мы можем принудительно применить стиль следующим образом:

Web5: SQL-инъекция — некоторые методы обхода механизмов фильтрации

Мы видим недостаток в этом методе обхода: мы должны знать, что сопоставленный код — _latin1. На мой взгляд, лучший способ обойти это — использовать функции шестнадцатеричного и нешестнадцатеричного кодирования и декодирования.

Web5: SQL-инъекция — некоторые методы обхода механизмов фильтрации

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


Как очистить и сбросить кеш Microsoft Store в Windows 10

Как очистить и сбросить кеш Microsoft Store в Windows 10

Если у вас возникли проблемы с установкой или обновлением приложения «Магазин» в Windows 10, это может быть связано с проблемой с кешем магазина. Узнайте как <strong>очистить кеш магазина Microsoft</strong> для вашей учетной записи в Windows 10.

Топ-10 лучших бесплатных программ-кейлоггеров для Windows

Топ-10 лучших бесплатных программ-кейлоггеров для Windows

Кейлоггер - это программное обеспечение для захвата и сбора информации о нажатиях клавиш. Узнайте о лучших бесплатных кейлоггерах для Windows. Как защитить свои данные!

Как всегда запускать Microsoft Edge в режиме InPrivate в Windows 10

Как всегда запускать Microsoft Edge в режиме InPrivate в Windows 10

Если вы используете Microsoft Edge на общем компьютере с Windows 10 и хотите сохранить конфиденциальность своей истории просмотров, узнайте, как настроить Edge для запуска в режиме InPrivate.

8 способов открыть MSConfig в Windows 11

8 способов открыть MSConfig в Windows 11

Вы можете решить многие проблемы, возникающие в Windows 11, с помощью настройки системы. Например, если игра не запускается, открытие и изменение настроек MSConfig может решить проблему.

Инструкция по настройке и использованию VPNBook на Windows

Инструкция по настройке и использованию VPNBook на Windows

VPNBook — бесплатный провайдер VPN с неограниченной пропускной способностью, идеален для доступа к заблокированным сайтам. Узнайте, как настроить VPN на Windows за считанные минуты.

Включить/отключить функцию встроенного автозаполнения в проводнике и диалоговом окне «Выполнить» в Windows 10.

Включить/отключить функцию встроенного автозаполнения в проводнике и диалоговом окне «Выполнить» в Windows 10.

Узнайте, как включить или отключить встроенное автозаполнение в адресной строке проводника и диалоговом окне «Выполнить» в Windows 10. Следуйте нашим простым шагам!

6 способов получить доступ к меню параметров загрузки в Windows 10

6 способов получить доступ к меню параметров загрузки в Windows 10

Windows 10 предоставляет <strong>меню параметров загрузки</strong>, позволяющее исправлять проблемы и перенастраивать систему. Узнайте, как получить доступ к этому меню.

Как запустить любое приложение с помощью кнопки «Удобство доступа» на экране входа в Windows 10

Как запустить любое приложение с помощью кнопки «Удобство доступа» на экране входа в Windows 10

Кнопка «Удобство доступа» на экране входа в Windows 10 дает возможность пользователям запускать приложения, такие как диспетчер задач и командную строку, для улучшения доступа и функциональности.

Как изменить веб-камеру по умолчанию на компьютере с Windows 10

Как изменить веб-камеру по умолчанию на компьютере с Windows 10

Эта статья поможет вам настроить переключение между веб-камерами на компьютере с Windows 10. Убедитесь, что у вас по умолчанию установлена нужная веб-камера.

9 способов открыть Блокнот в Windows 11

9 способов открыть Блокнот в Windows 11

Узнайте, как быстро и удобно открыть Блокнот в Windows 11 различными способами. Bлокнот — это незаменимое текстовое приложение, которое всегда под рукой.