次のJavaScriptコードがあります。
_var url= document.location.href;
document.write("<img src='?bla="+document.location.href+"'>");
_
追加時にコードを挿入できます。 ?b=a'onX=alert(1);'
をURLに追加しますが、これは_'
_がエンコードされないブラウザでのみ機能します。
私が考慮しなかった他の攻撃はありますか? src
属性から抜け出す別の方法はありますか?
私が考慮しなかった他の攻撃はありますか?
単一引用符のフォームがエンコードされないようにするには、クエリ文字列の代わりにペイロードをパスに忍び込ませることができます。たとえば、脆弱なページがhttp://example.com/path/vulnerable.php
にある場合、次のようなことを試すことができます。
http://example.com/'onerror ='ペイロード/..%2Fpath/vulnerable.php
一部のサーバーはパスを暗黙的に解決するという考えです。最初のフォルダー'onerror='payload
が実際に存在するかどうかはチェックしませんが、すぐに親ディレクトリ(../
)に戻り、リダイレクトを発行せずに残りのパスを解決します。 (スラッシュを%2f
としてURLエンコードすると、ブラウザーがパスを自動的に短縮できなくなります。)
Src属性から抜け出す別の方法はありますか?
いいえ、一致する引用符は この答え で説明されているように属性値からエスケープする唯一のチャンスです。