概要
構築しているサイトの脆弱性を発見したく、OWASP(zap) D-2017-02-27を利用しています。
URLエンコーディングされていないURLへアクセスを行い、XSSが発生していないか確認したいと考えています。
OWSPの規定のxssの動作では検出できない、特定のパラメーターを持つアクセスを行いたいと考え、ActiveRulesへJavaScriptを追加しましたが、パラメーターの値がURLエンコードされてしまい、XSSが発生しません。IE11では同等のアクセスを行うとXSSが発生することを確認できているので、これをOWASPで検知したいと考えています。Java/JavaScriptの知識が浅く、困っております。
お助けください。
対象URL例
http://localhost/app/index.html?cc=aaa
に対し、
http://localhost/app/index.html?cc=aaa>"><script>alert(1)</script>
というアクセスを発生させたい。
ActiveRules
uri = msg.getRequestHeader().getURI();
query = uri.getQuery() + '>"><script>alert(1)</script>';
uri.setQuery(query);
uriを作成している時点で私のつたないJava/JavaScriptの知識だとパラメーター等がURLエンコードされてしまうとおもうのですが、URLエンコードせずにアクセスする方法はないでしょうか?
new URIの部分で第2引数をtrueにするとスクリプトが落ちてしまいます。
上記コードを走らせた場合のOWASP上のURL表示
https://localhost/app/index.html?cc=aaa%3E%22%3E%3Cscript%3Ealert(1)%3C/script%3E
以上です。ご教授のほど、よろしくお願い申し上げます。
追記
コードをリファクタし、再掲しました。
uriのクラスを下記コードで調べたところ「org.apache.commons.httpclient.URI」でした
println(uri.getClass());