私の理解によると、(GETリクエストで)XSSを悪用している間、攻撃者はJSペイロードを使用して悪意のあるリンクを作成し、それを被害者に送信します。被害者がリンクをクリックすると、スクリプトはクッキーを攻撃者のサーバーに送信します。
パラメータが本文に含まれている場合、XSSの脆弱性をどのように利用できますか?ペイロード(リンクまたはファイル)をどのように正確に作成し、被害者に送信する必要がありますか?
POST bodyを含むリンクを作成することはできません。そのため、多少異なるルートをたどる必要があります。
ペイロードを含む独自のページを作成する必要があります。
<form action="http://target.com" method="post" onload="this.submit()">
<input type="hidden" value="payload" name="fieldname">
</form>
または、JavaScriptフェッチAPIを使用するだけで同じ効果を得ることができます。次に、被害者をだましてこのページにアクセスさせる必要があります。
URLが異なり、おそらく少し怪しげに見えるため、これは少し難しくなります。それを避けたい場合は、オープンリダイレクトの脆弱性を探しに行き、それらを利用して被害者をページに誘導することができます。
もちろん、ペイロードがサーバーに格納されていて、後でアクセスできるページに表示されている場合、これははるかに簡単です。被害者にそのページを訪問させるだけです。これは、ストアードXSSと呼ばれるものです。