Hello there, ('ω')ノ
Bagisto での SSTI から RCE への簡単な概要を。
脆弱性:
SSTI
URL:
https://siltonrenato02.medium.com/a-brief-summary-about-a-ssti-to-rce-in-bagisto-e900ac450490
要約:
この記事は、Bagistoというeコマースプラットフォームのバージョン1.5.1で見つかったサーバーサイドテンプレートインジェクション(SSTI)の脆弱性についての要約です。この脆弱性は、リモートコード実行(RCE)に利用されました。
始まり
著者は、Red Teamの演習中にBagistoというeコマースプラットフォームについて知り、その「ページ」機能に興味を持ちました。この機能では、eコマースのページを作成・カスタマイズできます。
脆弱性の発見
「ページ」機能にHTMLコードのスニペットを挿入することができる点に注目し、XSS(クロスサイトスクリプティング)の脆弱性を疑いましたが、さらに深く調査することにしました。
入力として`{{7*7}}`を挿入したところ、応答として数字の49が表示され、SSTIの脆弱性が確認されました。この脆弱性を利用して、サーバー上で任意のコードを実行することが可能になります。
RCEの実証
PHPで作られたフレームワークであることを利用して、既知のRCEペイロードを使用し、`/etc/passwd`ファイルを読み取ることに成功しました。これにより、アプリケーションのサーバ上でコマンドを実行し、データベース資格情報やAPI資格情報などのファイルにアクセスできることが示されました。
報告と結果
脆弱性をベンダに報告したところ、ダッシュボードの管理ユーザーであれば、ローカルユーザーとしてのアクセス権があるため、有効な影響はないとの回答でした。そのため、著者はこの脆弱性についての記事を書き、CVE-2023–33570番号を登録しました。
この記事は、eコマースプラットフォームにおけるセキュリティの重要性と、脆弱性を通じてサーバー上で任意のコードを実行するリスクについての認識を高めることを目的としています。
記事:
今回は、RCE として発見され、使用されているSSTIの脆弱性の概要で。
興味があったので、Bagisto バージョン 1.5.1 を詳しく調べてみることに。
機能性
見てみると、Pages 機能が見え。
電子商取引のページを作成したりカスタマイズしたりすることができ面白そうで。
ページ機能
次の画像でわかるように、ページに HTML コードのスニペットが
配置されている可能性があり、それを見るとすぐに XSS の脆弱性を思い出し。
HTMLコードを記述する機能
それは正しかったのですが、もしこれが本当のレッドチームの取り組みであれば、
XSS を最大限に活用するには時間の制約があるため、
XSS はさらなる影響をもたらす信頼性の低いベクトルとなり。
XSSの脆弱性
脆弱性
機能の分析を続けたところ、{{7*7}} が挿入されると、
それに応じて数字 49 が表示され。
サーバーサイドテンプレートインジェクション(SSTI)が確認され。
SSTI は、ペイロードなどのネイティブ テンプレート コンテンツの挿入を
可能にする脆弱性であり、これはサーバーで実行され。
つまり、入力を直接連結するという古い問題です。 脆弱性が確認されたため、
影響の調査に着手し。
そして驚いたことに、最初の RCE ペイロード テストは正当で。
これは PHP で作られたフレームワークであるため、
非常に簡単であることはわかっていて。
テストするには、以下の図に示すように、RCE の既知のペイロードを使用して
/etc/passwd ファイルを読み取り。
SSTI で RCE をトリガするペイロード
プレビューの瞬間に、ファイルの passwd コンテンツが表示され。
これで、ネットワークへの初期アクセスのベクトルであるレッド チームの
取り組みに素晴らしい影響を与えることができて。
挿入されたコマンドの結果
この脆弱性により、攻撃者はアプリケーションのサーバ上でコマンドを実行し
データベース資格情報や API 資格情報などを持つファイルへのアクセスを
許可する可能性があることに注意することが重要で。
これがクラウドプロバイダーでホストされている場合、
攻撃者はインスタンスのメタデータを読み取ろうとする可能性があり、
その影響は単純な CMS 管理者ユーザの侵害を超えて拡大し。
レポート
ベンダーに報告したところ、ベンダーはそれが有効な影響であるとは
認識せず。
ベンダーによると、既にダッシュボードの管理者ユーザである場合、
マシンへのローカル ユーザー アクセス権を取得しても影響はないとのことで。
したがって、この脆弱性についてこの概要を書くことにし、
情報を失わないよう、CVE-2023-33570 番号を登録して。
Best regards, (^^ゞ