Exploiting XXE for SSRF から学ぶ

ソース:

medium.com

脆弱性:XXE, SSRF

 

訳:

xxe および ssrf を使用した EC2 インスタンスの IAM 認証情報の取得

サーバーサイド リクエスト フォージェリ (SSRF) :- SSRF は、攻撃者が脆弱なサーバーにサードパーティ サーバーや内部リソースへの悪意のあるリクエストを強制的にトリガーできる攻撃で。

 

XML 外部エンティティ (XXE): XML 外部エンティティ攻撃は、XML 入力を解析するアプリケーションに対する攻撃の一種で。
多くの場合、攻撃者はアプリケーション サーバー ファイル システム上のファイルを参照し、アプリケーション自体がアクセスできるバックエンドや外部システムと対話することができ、RCE にエスカレーションされる可能性もあって。

 

XXE の脆弱性エスカレーションして SSRF を実行するにはどうすればよいですか?

これを悪用すると、攻撃者が WAF をバイパスしてローカル インフラストラクチャや内部ネットワークにアクセスし、機密情報の漏洩につながる可能性があり。

XXE のエスカレーションを通じて SSRF を利用するには、対象となる URL によって XML エンティティを識別し、定義されたエンティティを持つデータの値を使用する必要があり。
データ値、つまりアプリケーションの応答で返される特定のエンティティを使用することによって。
これで、アプリケーション応答内の URL からの応答を表示できるようになり。

<!DOCTYPE foo [ <!ENTITY id SYSTEM "http://localhost.com/"> ]>

この XXE ペイロードでは、外部エンティティである「id」が内部インフラストラクチャにアクセスするための HTTP バック接続を作成し。

 

搾取:

XXE に対して脆弱なサーバーがあり、そのサーバーは内部ネットワークへのアクセスを提供して。
ウェブサーバーは、デフォルトの URL で AWS メタデータ エンドポイントを実行していて。
EC2 メタデータ エンドポイントから IAM シークレット アクセス キーを取得する必要があり。

にあると仮定します。脆弱な EC2 インスタンスがこの IP アドレスhttp://192.168.1.220

以下のリクエストは、アプリケーションが XML を使用していることを示して。

 

 

応答では、XML が解析されていることがわかり、XXE の可能性があり。
そこで、さらに詳しく調べるために、XML ペイロードでランダムな文字列「blog」を渡し。
そのため、XXE ペイロード内のランダムな文字列を変更すると、その文字列が応答に反映され。
アプリケーションが XXE に対して脆弱であること。 

 

 

<?xml version=”1.0" encoding=”UTF-8"?>
<!DOCTYPE foo [ <!ENTITY id SYSTEM “file:///etc/passwd”> ]>
<product><productId>&id;</productId></product>

 

ここでの id には、外部エンティティを定義し、productId 値でエンティティを使用する /etc/passwd ファイルの値が含まれています。 上記の xxe ペイロードをアプリケーションに応じて操作し、/etc/passwd ファイルの内容をフェッチできるようにファイル スキーマを使用し。

 

リクエストを送信した後。

 

 

Burp Collaborator を使用して SSRF を検証してみて。
ペイロードクリップボードにコピーし、このペイロード内でその URL を使用し。
 

<!DOCTYPE foo [<!ENTITY ssrf SYSTEM “<Burp Collaborator Client >”> ]>

 

Burp Collaborater からリクエストがあって。
これは SSRF に対して脆弱であることを意味し。
次に、その URL からメタデータ情報を取得してみて。

 

メタデータのデフォルトのパスは「 /latest/meta-data/iam/security-credentials/ 」で。

 

これに指定された IP アドレスを追加して、リクエストを送信し。
以下に示すように、IT は秘密アクセス キーを取得して。

 

   

修復

· 文書型定義 (DTD) を無効にする。DTD を完全に無効にできない場合は、各パーサーに固有の方法で外部エンティティと外部文書型宣言を無効にする必要があって。

· 敵対的な XMS データに対するホワイトリスト ポリシーを実装し、これらのデータを簡単にバイパスできるようにして。

· XML データをアップロードできるファイル アップロードの脆弱性を検証して。

· バイパスの可能性を減らすために、XML プロセッサの更新されたバージョンを使用するようにして。

 

ほなほな。