Reflected XSS on Microsoft.com via Angular Js template injection から学ぶ

ソース:

infosecwriteups.com

脆弱性XSS, SSTi

 

訳:

まとめ:-

クライアント側のテンプレート インジェクションの脆弱性は、クライアント側のテンプレート フレームワークを使用するアプリケーションが Web ページにユーザー入力を動的に埋め込むときに発生し。
Web ページがレンダリングされると、フレームワークはページをスキャンしてテンプレート式を探し、見つかったものを実行します。
攻撃者は、クロスサイト スクリプティング (XSS) 攻撃を開始する悪意のあるテンプレート式を提供することで、これを悪用する可能性があります。
通常のXSSと同様に、攻撃者が提供したコードは、被害者のセッション トークンやログイン資格情報の窃取、被害者に代わって任意のアクションの実行、キーストロークの記録など、さまざまなアクションを実行する可能性があります。

ブラウザのXSSフィルターは通常、クライアント側のテンプレートインジェクション攻撃を検出または防止できません。

私はサブドメインを見つけることから Microsoft を探し始めました

事前の偵察も行って、ターゲットサイト https://flow.microsoft.com/ を取得しました。 ここで、その Web サイトで使用されているテクノロジーなどのいくつかの点に注意しました。

 

 

Angular テンプレートには、 (二重中括弧内の JavaScript に似たコード スニペット) を含めることができ。
それらがどのように機能するかを確認するには、次の jsfiddle を見てくだ。

 

 

jsfiddle.net

テキスト入力 {{7*7}} は Angular によって評価され、出力 49 が表示され。

これは、二重中括弧を挿入できる人は誰でも Angular 式を実行できることを意味し。

次にパラメータの整理を開始し、どれが「フィルタ」であるかを見つけ。

xssペイロードを使用しましたが、ここではペイロードが機能しません:(

次に、その値がソースコードのどこに反映されているかを手動で確認し。
その後、偵察とソースコードの読み取りによって、Angularテンプレートを使用していることがわかり、そのテンプレートのバージョンを見つけて、そのペイロードを検索し。
ここでそのペイロードを取得して。

 

 

それから私はそれのためにGoogleを使います、そして

 

portswigger.net

 

https://youtu.be/PWIx5a59cKI

 

ほなほな。