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, (^^ゞ