Shikata Ga Nai

Private? There is no such things.

Server Side Request Forgery - A Forged Documentを訳してみた

Hello there, ('ω')ノ

 

サーバ側のリクエスト偽造を。

 

脆弱性:

 SSRF

 ファイルアップロードのバグ

 

記事:

 https://shahjerry33.medium.com/server-side-request-forgery-a-forged-document-6359ef25058d

 

概要 :

サーバ側要求偽造(SSRF)攻撃は、ファイアウォールの背後にあって。

外部ネットワークからアクセスできない内部システムを標的に使用して。

SSRF攻撃は、SSH、ローカルホスト、FTP、Gopherなど。

内部で実行されているサービスにアクセスするために悪用される可能性があって。

通常のSSRF攻撃では、攻撃者はサーバに組織のインフラストラクチャ内の。

内部専用サービスへの接続を確立させる可能性があって。

 

説明 :

プログラムには、アップロードされたファイルタイプの検証が行われない場合に。

ドキュメントをアップロードするオプションがあって。

それはすべてのファイルがアップロードされるのを許していて。

なので、ペイロードを作成して拡張子をhtmlで保存してアップロードして。


しばらくして、BurpのコラボレータサーバでPingBackを取得したので。

whoisコマンドを使用してIPアドレスを確認すると会社自体のものだったので。

ターゲットのIPとは異なってて、インターネットからアクセスできず。

 

これは基本的なSSRF攻撃で、内部IPを見つけることはできたものの。

それ以上悪用することはできず。

この脆弱性をどのように見つけたかというと。

 

1.アカウントを作成して、ログインした後に。

 ドキュメントをアップロードするオプションを取得して。

 

f:id:ThisIsOne:20210805101148p:plain

 

2.ペイロードを生成するためにburpコラボレータクライアントを起動して。



f:id:ThisIsOne:20210805101213p:plain

 

「クリップボードにコピー」をクリックしてペイロードをコピーして。

 

f:id:ThisIsOne:20210805101240p:plain

 

3.コードを使用してhtmlファイルを作成して。

 <html>
 <body>
 <img src=http://
 </body>
 </html>

 

 コピーしたペイロードを貼り付けてファイルを保存して。

 

f:id:ThisIsOne:20210805101302p:plain

 

4.ターゲットのWebサイトにhtmlファイルをアップロードして。

 

f:id:ThisIsOne:20210805101358p:plain

 

5.BurpコラボレータクライアントでPingBackを受け取って。

 

f:id:ThisIsOne:20210805101332p:plain

 

何が起こったかというと。

htmlファイルをサーバにアップロードすると。

サーバはファイルの内容を読んで。

内部IPを使用してBrupコラボレータクライアントから画像をフェッチしようとして。

それが、Brupコラボレータークライアントに反映されて。

 

影響 :

攻撃者は信頼関係を悪用して脆弱なアプリからの攻撃をエスカレートして。

不正なアクションを実行する可能性があって。

 

緩和 :

SSRF攻撃を軽減する良い方法は。

アプリがアクセスする必要のあるIPアドレスやDNS名をホワイトリストに登録して。

SSRFは、アプリケーションの機能とビジネス要件に大きく依存するので。

SSRFに対する普遍的な修正はなくて。

たとえば、緩和策としてアプリはpdf、png、jpeg、tiffなどの画像ファイルのみを。

アップロードできるようにする必要があって。

 

Best regards, (^^ゞ