HTMLデータURIをロードする方法はありますか:
data:text/html、<html> <svg/onload = confirm(1)> </ html>
このスキームでは:
データ://
私はこのペイロードが回っているのを見ました:
data:// text/javascript、alert(1)
しかし、最新のChrome/Firefoxではテキストプレーンとしてのみ表示されます
Mozzila Firefox ESR最新->プロンプトダウンロード
これを検索バーで直接実行しても機能しません。ソースコードからアクティブにする必要があります。
プロトコルハンドラの真ん中に改行を導入することで、ブラックリストがjavascript:およびdata:を探していることを確認できます。同様に他の悪意のある可能性のあるハンドラーは何も悪いものを検出せず、おそらく送信を許可します。この種の難読化を許可しないブラウザは、FirefoxとGeckoベースのユーザーエージェントだけです。改行の標準形式を使用することが許可されているため。
実際には、16進文字を使用してハンドラーを操作し、現在のペイロードの一部の文字で置き換えることができます。
このペイロードの "a"は実際には "d"と "t"の間の16進数でハードコードされ、コンテンツタイプtext/htmlを使用してそれを表示します。次のaも16進数です。
<a href="
d
a
t
a
:text/html,
<script>alert('Gstuff')</script>">click me</a>
上記のコードは、Safari 12.11でテストされた有効なXSSになります。