強力な暗号化アルゴリズムによる SQL インジェクション事例

強力な暗号化アルゴリズムによる SQL インジェクション事例

暗号化には、情報の機密性などさまざまな利点があります。ただし、アプリケーションのセキュリティを確保するために暗号化に過度に依存するのは得策ではありません。今日は、ケーススタディを使用して、暗号化されたペイロードを通じて SQL インジェクションの脆弱性を識別して悪用する方法を理解します。

SQL インジェクションについては、知っている人や使用したことがある人は多いでしょう。知らない人や聞いたことがない人でも問題ありません。次に SQL インジェクションについて紹介します。

SQL インジェクションは、Web フォーム送信、入力ドメイン名、またはページ要求のクエリ文字列に SQL コマンドを挿入し、最終的にサーバーを騙して悪意のある SQL コマンドを実行させるプロセスです。

具体的には、既存のアプリケーションの機能を利用して、悪意のある SQL コマンドをバックエンド データベース エンジンに挿入し、実行します。設計者の意図どおりに SQL 文を実行するのではなく、Web フォームに悪意のある SQL 文を入力することで、セキュリティ上の脆弱性がある Web サイト上のデータベースを取得できます。

では、SQL インジェクションはいつ発生するのでしょうか?

ブラウザに URL www.sample.com を入力するとします。これは単なるページ要求であり、データベースへの動的な要求を行う必要がないため、SQL インジェクションは発生しません。www.sample.com?testid=23 を入力すると、URL に変数 testid が渡され、値 23 が提供されます。これはデータベースへの動的なクエリの要求であるため (?testid=23 はデータベース クエリ変数を表します)、URL に悪意のある SQL ステートメントを埋め込むことができます。

明確にするために述べておくと、この記事では暗号化についてではなく、SQL インジェクションを識別して悪用するために使用される暗号化されたペイロードを生成するアプリケーションの欠陥についてのみ説明します。

私たちが最近取り組んだ電子商取引アプリケーションでは、Web サイトへのリクエスト パラメータ値のほとんどが暗号化されていることがわかりました。リクエスト パラメータが暗号化されている場合、暗号化を解除できない限りアプリケーションをファジングすることは困難です。そのためには、キーと暗号化アルゴリズムを知る必要があります。

次の図は、私たちが見つけたサンプル Web サイトの詳細情報ページです。このページでは、id (orderid) パラメータを暗号化された形式で送信しています。

注: パラメータ値 (BDKfx3xNKsc=) は単純に base64 でエンコードされるのではなく、暗号化されます。 ID パラメータの暗号化された値は、base64 エンコード形式で表されます。

また、アプリケーションからログアウトし、同じユーザーとしてログインしてまったく同じページに移動すると、暗号化パラメータ (nPBri1km2ic=) の値が以下に示すように異なることにも気付きました。

上の図からわかるように、ログインが成功するたびにランダム キーが暗号化に使用され、またはセッション ID (Cookie の一部) が何らかの方法でキーの一部として使用されます。安全に見えますが、SQL インジェクションを試してみましょう。

まず、入力検証をテストするために、複数の場所に一重引用符 (') を挿入しようとしましたが、要求パラメータは暗号化された形式 (つまり、有効な暗号文) である必要があったため拒否されました。

ただし、ここではショッピング カートの共有機能を使用できます。これにより、ユーザーはショッピング カートのアイテムを他のユーザーと共有できます。ユーザーが共有用にショッピング カートを保存すると、ランダムなクエリ トークンを含むリンクが生成されます。このリンク(URL)にアクセスすることで、ユーザーはお互いのショッピングカートにアクセスできます。カートを保存する前に、ユーザーはカートに名前を付けるように求められます。

これはプレーンテキスト入力を受け入れる珍しい入力フィールドの 1 つなので、SQLi、XSS 用にエンコードします。さらに詳しく調べてみると、shared-cart 用に生成された URL 内のトークンは、実際にはショッピング カートに選択したカート名のパスワードであることがわかりました。

ただし、共有カート機能はいかなる攻撃に対しても脆弱ではありませんが、特定の入力 (プレーンテキスト) に対して暗号化されたペイロード (暗号テキスト) を生成するために使用できることに注意してください。ショッピング カート機能へのリンクを共有して暗号化された攻撃ペイロードを生成し、SQL インジェクションや認証バイパスなどの脆弱性がないかアプリケーションをチェックできるようになりました。 SQL インジェクションをテストするために、一重引用符 (') で囲まれた暗号化された値が生成されます。

暗号化されたペイロードは、暗号テキスト値のみを入力として受け入れるさまざまなアプリケーション パラメータを難読化するために使用されます。正しい場所にたどり着くまでにしばらく時間がかかりましたが、最終的に、orderitem ページの ID パラメータが SQL エラー メッセージを返し、脆弱性が確認されました。

このエラー メッセージは、アプリケーションが動的クエリを生成し、SQL インジェクション攻撃に対して脆弱である可能性があることを示しています。次に、データベースから情報を抽出します。UNION ベースの SQL クエリを使用して、データベースからデータを抽出します。union 演算子は、2 つ以上の SELECT ステートメントの結果を結合するために使用されます。

最初のタスクは、SQL クエリの一部として返す列の数を決定することでした。試行錯誤を繰り返し、クエリでいくつかの列 (30) を返しました。次に、データベースから情報を抽出します。以下に示すように、データベースのバージョン情報を抽出するための暗号化されたペイロードを作成します。

上記のペイロードの出力によって生成された暗号文は、ページ上の脆弱な ID パラメータとして入力されます。

その後、この脆弱性を利用してデータベース システムを構築し、最終的にシェルを取得しました。

要約する

上記の分析から、暗号化パラメータを使用してアプリケーションのセキュリティを実現することは、想像するほど安全ではないことがわかります。たとえば、強力な暗号化アルゴリズムで暗号化されたデータの場合、悪意のある攻撃者は暗号化されたペイロードを使用して攻撃することができます。 現在、暗号化は依然としてデータの改ざんや偽造から保護する強力なメカニズムであると考えられていますが、暗号化の実装が不十分で、暗号化の使用に対する明確なプライバシー保護が欠如しているため、依然として非常に危険なセキュリティ上の脆弱性を引き起こす可能性があります。

<<:  人工知能は人間の知能ではない。まずは人工的なもの、そして知的なもの

>>:  WOT2018 アルゴリズム モデル フォーラム: データが氾濫する中、アルゴリズムを使用してボトルネックを打破する方法

ブログ    
ブログ    
ブログ    

推薦する

BLIP-2とInstructBLIPがトップ3にランクイン! 12の主要モデル、16のリスト、「マルチモーダル大規模言語モデル」の総合評価

マルチモーダル大規模言語モデル (MLLM) は、LLM の豊富な知識蓄積と強力な推論および一般化機...

...

テスト効率が2倍になりました!第2回NCTS中国クラウドテストサミットがAIテストの新たなパラダイムを切り開く

テスト効率が2倍になりました!第2回NCTS中国クラウドテストサミットがAIテストの新たなパラダイム...

人工知能技術の発展の概要

[[352219]]人工知能は、コンピュータサイエンス業界のトップテクノロジーの一つとして、1956...

人工知能技術の登場によるデジタル変革をどう理解すればよいのでしょうか?

デジタル化は、意思決定レベルから産業レベルまでの変化において中心的な課題になりつつあります。科学技術...

蘇州の路上には自動運転バスが走っている。これは試験運行ではない。市民は無料で乗車できる。

この記事はAI新メディアQuantum Bit(公開アカウントID:QbitAI)より許可を得て転載...

...

2020 年に注目すべき機械学習とデータサイエンスのウェブサイト トップ 20

今日最も進歩的で、最先端で、刺激的なもの…データ サイエンスと機械学習は、今日非常に魅力的で、非常に...

Kevin P. Murphy の「確率的機械学習: 上級」が PDF でダウンロードできるようになりました。

本日、Google の研究科学者 Kevin P. Murphy 氏は、「確率的機械学習: 上級」の...

大規模ニューラルネットワークに関する最新の文献のレビュー:効率的な DNN のトレーニングとメモリ使用量の節約

現代のディープラーニングおよび人工知能技術の開発には、ディープニューラルネットワーク (DNN) を...

AppleはAI競争で遅れをとり、市場価値ランキングはAmazon、Google、Microsoftに追い抜かれる可能性も

米国現地時間9月8日木曜日、投資会社ニーダム・セキュリティーズは、アマゾン、グーグル、マイクロソフト...

...

Google DeepMind が証明: GPT-4 の最終結果は人類の知恵の集大成です! Transformerモデルはトレーニングデータを超えて一般化できない

Transformer モデルが事前トレーニング データの範囲を超えて新しい認知と能力を一般化できる...

OpenAI: 著作権のあるコンテンツを使用しないと、ChatGPTのようなAIモデルを開発することはできない

IT Homeは1月10日、ChatGPTの開発元であるOpenAIが最近、ChatGPTのようなA...