2012-02-11 9 views
2

私は、未検証のURLに起因する反射XSS脆弱性を持つアプリケーションを持っています。私は、クライアント側で少なくとも1つの出力エンコーディングを提供したいと考えています。私はhtmlとjsにあるフロントエンドページだけを変更するアクセス権を持っています。バックエンドのアプリケーションコードにアクセスできないため、サーバー側でUrlEncoder.encodeを使用することはできません。 私の質問は、クライアント側のフォームからサーバー側のエンコーディングを呼び出す方法です。私は、JSPに知っ 私は < @pageインポート= org.owaps.esapiを書くことができます。* するvar URL = <% = Esapi.Encoderr.encodetoUrl(vulnerableUrl)=%>XSSを防ぐためのhtmlページ(jspではない)からのサーバー側出力エンコーディング

しかし、私のWebページは、JSPれていないので、 、html + js、どうすればサーバー側のエンコーディング関数を呼び出すことができますか?

+0

詳細を入力する必要があります。脆弱性はどのように表示されますか?ユーザーはどのようにページに入れられますか? – Erlend

+0

HI Erlend。この脆弱性は、私が接続するバックエンドアプリケーションがリダイレクトURLを検証せず、フロントエンドのページに送り返してdocument.forms [0] .redirect.value = malcious urlのようにリダイレクトURLとして設定するために起こります。攻撃者がURLを改ざんして修正し、。開発者がログオンページ(html + jsにある)だけを編集できるが、サーバー側でコードを書くことができない場合は、html + jsにいくつかのコードを置いて出力コードを行う方法があります。バイパスすることはできません。 – user1203479

+0

@Erlend。この脆弱性は、私が接続するバックエンドアプリケーションがリダイレクトURLを検証せず、フロントエンドのページに送り返してdocument.forms [0] .redirect.value = malcious urlのようにリダイレクトURLとして設定するために起こります。攻撃者はアラート( '')を追加できます。 – user1203479

答えて

2

あなたが提供した情報があれば、私はいいえと言いますが、それはおそらく不可能です。

のは、あなたが追加しましょう: document.forms [0] .redirect.value = encodeURI(malcious URL)

今、攻撃者が一緒に来て、で送信します。

"); alert("xss") 

を、問題があることです悪意のあるデータは、クライアントスクリプトの実行時にすでにページに表示されており、既にページのレイアウトやコンテキストが変更されています。

mod_securityのようなWAFを使用してアプリケーションに入る可能性のある値を制限し、それをクライアント側で修正しようとすると、これを修正するより良いチャンスがあると思います。実際に問題のサーバー側を修正するのが最善の方法です。

関連する問題