Как обмануть защиту, чтобы провести SQL-атаку с помощью JSON

(Ди Алессандро Руголо)
05/04/24

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

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

Естественно, хакеры тоже не дали себя унывать и нашли целый ряд уловок для «обхода» защиты, среди них атака под названием JSON — обход SQL.

Попробуем разобраться, что это такое, но сначала несколько слов о JSON.

JSON — это формат обмена данными, основанный на подмножестве языка программирования JavaScript. Фактически он означает «Нотация объектов JavaScript».

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

Например, если мы рассматриваем веб-приложение, защищенное WAF, и пытаемся провести атаку SQLi, чтобы попытаться украсть данные, к которым у нас нет доступа, элементы управления WAF обычно способны идентифицировать неправильный запрос и заблокировать попытку. атаки. Однако если будет предпринята попытка атаки с использованием строки в формате JSON, WAF будет обманут, поскольку не сможет понять, что строка содержит команду SQL, в то время как база данных способна правильно интерпретировать команду, поскольку она поддерживает синтаксис JSON.

В результате основным производителям WAF (Palo Alto Networks, Amazon Web Services, Cloudflare, F5 и Imperva) в 2022 году пришлось принять меры, введя правила, гарантирующие контроль над синтаксисом JSON.

Исследовательская группа CLAROTY TEAM82 обнаружила этот новый тип атаки.

Теперь, учитывая, что это довольно недавняя атака, я предлагаю всем, кто использует WAF для защиты своих веб-сервисов, провести специальные тесты, чтобы проверить, защищены ли они с помощью JSON SQL Bypass.

Многие подумают, что не стоит беспокоиться, поскольку это очень сложная атака: вместо этого я советую последнему обратить пристальное внимание, поскольку SQLMap позволяет автоматически искать сайты, уязвимые для атаки JSON SQL Bypass. 

SQLMap, простой в использовании инструмент с открытым исходным кодом... Нет, это другая история!

Для углубления:

- https://www.picussecurity.com/resource/blog/waf-bypass-using-json-based-...

- https://www.json.org/json-it.html

- https://claroty.com/team82/research/js-on-security-off-abusing-json-base...