反映された XSS (JS 変数)
こんにちは。今日は、Saka Reflected XSS (JS Variable) という名前の私のプロジェクトの Web アプリケーション セキュリティ テストで遭遇した脆弱性を検出し、この脆弱性を悪用する手順を説明します。
XSSとは何ですか
XSS 脆弱性の詳細については、以下の記事を参照してください。
アプリケーションの実行
ドッカー
docker pull erdemstar/saka:reflected-xss-js-variable
docker run -d -p 80:80 erdemstar/saka:reflected-xss-js-variable
git clone https://github.com/ErdemStar/Saka
cd reflected-xss-js-variable
- mouse click on reflected-xss-input.sln
- devenv reflected-xss-input.sln (CMD)
初めてアプリケーションを開くと、以下のようなページが表示されます。ページ上の「攻撃」ボタンを押すと、テストする部分に移動します。
「攻撃」ページにアクセスすると、ユーザーから名前情報が取得されるページが表示されます。このフィールドに名前を書いて送信すると、次のような結果が得られます。
アプリケーションを詳しく見るには、ブラウザーを介して受信リクエストと送信リクエストを確認すると便利です。
メンタルノート
- ユーザーから受け取った値は name パラメーターに保持され、GET HTTP 動詞を使用して送信されます。
- アプリケーションは、上で共有した図の 72 ~ 73 ~ 74 行目を使用して、ユーザーから受け取った値を表示します。アプリケーションは、JS フィールドのデータをユーザーに表示します。
アプリケーションに関する十分な情報を取得した後、XSS 脆弱性を悪用するために、送信する名前の値にブラウザーによって解釈されるいくつかの文字が追加されます。
受信した応答の内容を確認すると、アプリケーションはセキュリティ チェックを行わずに受信した名前の値を反映していることがわかります。
ここで、ユーザーから受け取ったデータを script タグに追加すると、2 つの異なる方法で悪用される可能性があります。
1-メソッド (HTML インジェクション)
Response で返された 73 行を調べるとき、アプリケーションは、ユーザーから受け取ったデータを HTML に直接追加して表示するのではなく、JavaScript のinner.html機能を間接的に使用します。ここで、以下のようなリクエストがスローされると、XSS 攻撃が実行される可能性があります。
2 メソッド (JS バイパス)
73 行を調べると、以下のようなペイロード形式のリクエストを送信し、script タグ内でさまざまな Javascript コマンドを実行できるようになります。
<context>";//<payload>
この段階では、次のような簡単なリクエストを行うことで、JS コマンドを直接実行できるようになりました。
私の記事を読んでいただきありがとうございます。お役に立てば幸いです。以下に、役に立つかもしれない私の他の概念のリンクを残しておきます。
Web の脆弱性に関する他の記事を参照するには、ここをクリックしてください。リンク

![とにかく、リンクリストとは何ですか?[パート1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































