防御側をだまして JSON を使用した SQL 攻撃を行う方法

(へ アレッサンドロルゴロ)
05/04/24

これまで見てきたように、SQLi は古いにもかかわらず、依然として恐ろしいものです。 SQLi の基本情報を見逃している人がいる場合は、最初の記事を参照することをお勧めします。 SQL インジェクション攻撃: それは何ですか?

当然のことながら、セキュリティ業界は SQLi に対抗するためのツールを開発しました。これらは、Web リクエストをフィルタリングし、正当なリクエストであるか攻撃の試みであるかを正確に判断できるアプリケーションです。

当然のことながら、ハッカーも落胆することなく、防御を「回避」するための一連のトリックを発見しました。その中には、 JSON - SQL バイパス.

それが何であるかを理解しましょう。まず、JSON について少し説明します。

JSON は JavaScript プログラミング言語のサブセットに基づくデータ交換形式で、実際には JavaScript Object Notation の略です。

時間が経つにつれ、JSON はデータ交換で最も使用される形式になり、データベースには SQL に JSON サポートが組み込まれました。同様のことは多くのセキュリティ ツールでは発生しておらず、その結果、この手法を使用して実行された SQLi 攻撃の試みを識別できません。 

たとえば、WAF によって保護されている Web アプリケーションを考慮し、アクセス権のないデータを抽出するために SQLi 攻撃を実行しようとすると、通常、WAF コントロールは不適切なリクエストを特定し、その試みをブロックできます。攻撃の。ただし、JSON 形式の文字列を使用して攻撃が試行された場合、データベースは JSON 構文をサポートしているためコマンドを正しく解釈できるにもかかわらず、WAF はその文字列に SQL コマンドが含まれていることを理解できないためだまされます。

その結果、主要な WAF プロデューサー (Palo Alto Networks、Amazon Web Services、Cloudflare、F5、Imperva) は 2022 年に、JSON 構文の制御を保証するルールを挿入する措置を講じる必要がありました。

CLAROTY 研究チーム TEAM82 がこの新しいタイプの攻撃を発見しました。

さて、これがかなり最近の攻撃であることを考えると、Web サービスを保護するために WAF を使用しているすべての人は、JSON SQL バイパスによって保護されているかどうかを確認するための特別なテストを実行することをお勧めします。

これは実行するのが非常に複雑な攻撃であるため、警戒する必要はないと考える人も多いでしょう。SQLMap を使用すると、JSON SQL バイパス攻撃に対して脆弱なサイトを自動的に検索できるため、後者には細心の注意を払うことをお勧めします。 

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...