XSS Fuzzer は、プレーンな HTML/JavaScript/CSS で書かれたシンプルなアプリケーションで、ユーザー定義のベクターに基づいて XSS ペイロードを生成します。複数のプレースホルダーを使用し、それらをファジングリストで置き換えます。
このツールでは、生成されたペイロードをプレーンテキストとして出力するか、iframe 内で実行することができます。iframe 内では、ブラウザから任意の URL に対して生成されたペイロードを使って GET または POST リクエストを送信することが可能です。
XSS Fuzzer は汎用的なツールであり、以下のような複数の目的に役立ちます:
ファジングを行うには、プレースホルダーを作成する必要があります。例:
<[TAG] [ATTR]=Something [EVENT]=[SAVE_PAYLOAD] />
[SAVE_PAYLOAD] プレースホルダーは、alert(unescape('[PAYLOAD]')); のような JavaScript コードに置き換えられます。このコードは、XSS ペイロードが正常に実行されたときにトリガーされます。
上記のファジングリストとペイロードに対する結果は次のようになります:
<svg src=Something onerror=alert(unescape('%3Csvg%20src%3DSomething%20onerror%3D%5BSAVE_PAYLOAD%5D%20/%3E')); />
<svg value=Something onerror=alert(unescape('%3Csvg%20value%3DSomething%20onerror%3D%5BSAVE_PAYLOAD%5D%20/%3E')); />
<svg src=Something onload=alert(unescape('%3Csvg%20src%3DSomething%20onload%3D%5BSAVE_PAYLOAD%5D%20/%3E')); />
<svg value=Something onload=alert(unescape('%3Csvg%20value%3DSomething%20onload%3D%5BSAVE_PAYLOAD%5D%20/%3E')); />
Mozilla Firefox などのブラウザで実行すると、実行されたペイロードがアラート表示されます:
<svg src=Something onload=[SAVE_PAYLOAD] />
<svg value=Something onload=[SAVE_PAYLOAD] />
XSS に対して脆弱なページを、ブラウザの XSS Auditor のバイパスなどのさまざまなテストに使用できます。このページは payload という GET または POST パラメータを受け取り、そのエスケープされていない値を表示するだけです。
ライブバージョンは https://xssfuzzer.com でご覧いただけます。
このアプリケーションはベータ版のため、バグが含まれている可能性があります。バグを報告したり提案を行いたい場合は、GitHub リポジトリをご利用いただくか、contact [a] xssfuzzer.com 宛にメールをお送りください。