web-dev-qa-db-ja.com

<のみを見る単純なXSSフィルターをバイパスする

たとえば、ユーザーからの入力が取得され、単純なクライアント側のXSSフィルターに渡されるページがあるとします。このフィルターは、_<_文字のみを ''に置き換えます。

_in = in.replace(/[<]/g, '');
_

次に、ユーザー入力を_<div>_タグ内に埋め込むために、入力がJQueryのhtml()メソッドに渡されます。

この単純なXSSフィルターをバイパスするにはどうすればよいですか?

1
Phani

<のない単純なHTMLコンテキストでのXSSは 不可能 です。 HTML属性コンテキスト、JavaScriptコンテキストなどで可能です。しかし、単純な<div>タグでは、<が必要です。

正規表現をバイパスする方法はありません。文字列からすべての<文字を常に正しく削除します。

残っている唯一の希望は、jQuery関数.htmlが入力(たとえば、デコード値)を安全に処理できず、フィルターをバイパスできることです。しかし、.htmlには既知の脆弱性はありません。

以上を踏まえると、ここには脆弱性はないと言えるでしょう。

0
tim