Shikata Ga Nai

Private? There is no such things.

An unknown Linux secret that turned SSRF to OS Command injectionを訳してみた

Hello there, ('ω')ノ

 

SSRFをOSコマンドインジェクションに変えた未知のLinuxシークレットを。

 

脆弱性:

 SSRF

 コマンドインジェクション

 

記事:

 https://secureitmania.medium.com/an-unknown-linux-secret-that-turned-ssrf-to-os-command-injection-6fe2f4edc202

 

サーバ側のリクエストフォージェリをエスカレートするための奇妙なアプローチを。

 

SSRFは、Server-SideRequestForgeryの略で。

SSRFは、一種のWebアプリケーションの脆弱性で。

これを使用すると、攻撃者はサーバ側でHTTPリクエストを実行できて。

一般に、攻撃者はサーバにサーバ自体への接続を確立させる可能性があって。

また、組織のインフラ内でWebベースのサービスと対話することもできて。

 

OSコマンドインジェクション(シェルインジェクションとも呼ばれます)は。

攻撃者がアプリケーションを実行しているサーバー上で。

任意のオペレーティングシステム(OS)コマンドを実行して。

通常はアプリケーションとそのすべてのデータを完全に侵害することを。

可能にするWebセキュリティの脆弱性で。


問題をどのように見つけたかについては。

テスト中に、APIエンドポイントがその「url」パラメータ値に基づいて。

pdfファイルを生成するのを観察して。

URLを値として取るパラメータを見つけるたびに、SSRFの脆弱性を直接探して。

 

https://www.example.com/api/v03/create_pdf?url=http://testsite.com&cookies=a&server=web

 

「url」パラメータ値をBurp Collaboratorリンクに置き換えて。

パラメータ検証がサーバ側で行われるかどうかを確認することに。

1分後、Burp CollaboratorでのDNS、HTTPの相互作用をいくつか観察して。

 

https://www.example.com/api/v03/create_pdf?url=http://&cookies=a&server=web

 

Burp CollaboratorでHTTPインタラクションが発生した場合は。

インラインOSコマンドインジェクションを使用して。

 

f:id:ThisIsOne:20220323175703p:plain

 

`whoami`ペイロードをBurpCollaboratorリンクに追加してから。

エンドポイントをリクエストして。

BurpCollaboratorダッシュボードで取得できる「whoami」コマンドが。

実行されたことを確認して。

コマンドインジェクションを取得して。

 

セキュリティの伝統として、問題の影響を証明するために。

「/ etc/passwd」コンテンツを表示する必要があるので。

このために、 `cat /etc/passwd`を実行しようとして。

ただし、サーバ側では、スペース文字が検証中であり、要求は拒否されて。

下記が、SSRFからOSへのコマンドインジェクションで。

 

f:id:ThisIsOne:20220323175606p:plain


「スペース」をバイパスする秘訣として。

Linux環境でスペース文字をバイパスするためのいくつかのペイロードを知っていて。

 

 cat</etc/passwd
 {cat,/etc/passwd}
 cat$IFS/etc/passwd

 

しかし、上記のペイロードはどれも機能しなくて。

何度か試行錯誤した結果、以下のペイロードを使用して。

コマンドを実行することができて。

 

 cat${IFS}/etc/passwd

 

下記が、SSRFからOSへのコマンドインジェクションで。

 

f:id:ThisIsOne:20220323172921p:plain

 

Best regards, (^^ゞ