

## 概要

構築しているサイトの脆弱性を発見したく、OWASP(zap) D-2017-02-27を利用しています。  
URLエンコーディングされていないURLへアクセスを行い、XSSが発生していないか確認したいと考えています。  
OWSPの規定のxssの動作では検出できない、特定のパラメーターを持つアクセスを行いたいと考え、ActiveRulesへJavaScriptを追加しましたが、パラメーターの値がURLエンコードされてしまい、XSSが発生しません。IE11では同等のアクセスを行うとXSSが発生することを確認できているので、これをOWASPで検知したいと考えています。Java/JavaScriptの知識が浅く、困っております。  
お助けください。

## 対象URL例

[code]

    http://localhost/app/index.html?cc=aaa
    
[/code]

に対し、

[code]

    http://localhost/app/index.html?cc=aaa>"><script>alert(1)</script>
    
[/code]

というアクセスを発生させたい。

## ActiveRules

[code]

    uri = msg.getRequestHeader().getURI();
    query = uri.getQuery() + '>"><script>alert(1)</script>';
    uri.setQuery(query);
    
[/code]

uriを作成している時点で私のつたないJava/JavaScriptの知識だとパラメーター等がURLエンコードされてしまうとおもうのですが、URLエンコードせずにアクセスする方法はないでしょうか？  
new URIの部分で第２引数をtrueにするとスクリプトが落ちてしまいます。

## 上記コードを走らせた場合のOWASP上のURL表示

[code]

    https://localhost/app/index.html?cc=aaa%3E%22%3E%3Cscript%3Ealert(1)%3C/script%3E
    
[/code]

以上です。ご教授のほど、よろしくお願い申し上げます。

## 追記

コードをリファクタし、再掲しました。  
uriのクラスを下記コードで調べたところ、`org.apache.commons.httpclient.URI` でした。

[code]

    println(uri.getClass());
    
[/code]


CC BY-SA 4.0
2017-03-08T04:12:26.397
33183
2023-09-01T05:04:20.497
2020-06-12T02:46:04.907
3060
14404
question
javascript java xss
OWASP (zap) にてURLエンコードされていないパラメーターを持つURLにアクセスしたい


uri.setQuery(query);  
↓  
uri.setEscapedQuery(query);

でうまくいかないでしょうか？


CC BY-SA 3.0
2017-03-24T01:52:15.987
33504
2017-03-24T01:52:15.987
21092
33183
answer