[解決済み] なぜこのマスクされたJSコードがGETパラメータ: '*alert(13)*' で私のページで実行されるのでしょうか?
2022-02-09 06:41:37
質問内容
WhiteHatによるスキャンを行ったところ、脆弱性の1つとして、URLの末尾に
whscheck'*alert(13)*'a/
. 完全な URL を実行すると (
https://oursite.com/phorders3/index.php/whscheck'*alert(13)*'a/
) が読み込まれ、13という値のアラートがポップアップ表示されます。どなたか、この仕組みについて説明していただけませんか?アスタリスクと
a/
は何をしているのでしょうか?
解決方法は?
あなたのページのコードは、URLからの値を適切にエスケープせずに、Javascriptの文字列リテラルで使用しています。つまり、誰でもURLの中にJavascriptを入れれば、ページ内で実行できるということです。
例えば、このようなURLであなたのサイトにリンクし、誰かがそのリンクを使用すると、そのユーザーのブラウザでスクリプトが実行され、そのユーザーの個人情報を拾ってどこかに送信するというクロスサイトスクリプティングに使用することができます。
アポストロフィとアスタリスクは、文字列リテラルから抜け出すために使用します。ページ内のJavascriptにこのようなコードがある場合。
var s = '<? echo $variable ?>';
変数に URL からの値が含まれている場合、レンダリングされたページでは次のようになります。
var s = 'whscheck'*alert(13)*'a';
アポストロフィは文字列リテラルを終了させ、以下の式を文字列の内容ではなく、Javascriptのコードの一部にします。
アスタリスクは式と式の間にある単なる演算子です。を入れるよりも、URLを入れる方が簡単です。
+
演算子を使うのが自然でしょう。
関連
-
[解決済み】コンソールがUnterminated JSX contentsエラーを投げる【終了しました
-
[解決済み】ある要素を別の要素に移動させるには?
-
[解決済み】TypeError:res.jsonは関数ではありません。
-
[解決済み】ETIMEDOUTエラーの対処方法は?
-
[解決済み】JavaScriptで関数が存在するかどうかを確認する方法は?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] セレクタの子を取得する方法は?
-
[解決済み] 画面サイズ、現在のウェブページ、ブラウザウィンドウのサイズを取得する
-
[解決済み] 関数内で変数を変更した後、変数が変更されないのはなぜですか?- 非同期コードリファレンス
-
[解決済み] 親ページからiframe内のJavaScriptコードを呼び出す
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Javascript:getElementById対getElementsById(両方が別のページで動作する)。
-
[解決済み] 解決済み】clearInterval()が動作しない [重複] [重複]
-
[解決済み】Javascriptのコールバック関数がFirefoxで「Callback is not a function」というエラーを投げる
-
[解決済み] React with ES7: Uncaught TypeError: Cannot read property 'state' of undefined [duplicate] (未定義のプロパティ'state'を読み込むことはできません。
-
[解決済み】コンソールがUnterminated JSX contentsエラーを投げる【終了しました
-
[解決済み】Syntax error: JavaScriptの不正なreturnステートメント
-
[解決済み】Uncaught TypeError: 未定義のプロパティ 'msie' を読み取れない - jQuery tools
-
[解決済み】 \u003C とは何ですか?
-
[解決済み】未定義のプロパティ 'forEach' を読み取ることができない
-
[解決済み】module.exports "モジュールが定義されていません"