xss の脆弱性に関するいくつかの考え

xss の脆弱性に関するいくつかの考え

早速、これら 2 つの実際的なケースを見てみましょう:
XSS ケース 1:
1. 以下に示すように、特定のシステムには問題フィードバック機能があります:
ここに画像の説明を挿入します
2. もちろん、ここでファイルのアップロードをテストできますが、今日のトピックは XSS です。スキップして、最初にランダムに入力し、クリックして表示すると、送信された質問が表示されます。
ここに画像の説明を挿入します
3. Burp を起動し、テスト用にパケットをキャプチャします。
ここに画像の説明を挿入します

データ パッケージの分析: 現時点で制御可能な主なパラメーターは 3 つあり、説明はフィードバックの内容を表し、連絡先は電話番号を表し、URL はアップロードされた画像の場所を表します。
4. テスト後、説明と連絡先の両方が具体化され、出力されます。したがって、URL パラメーターに移動して、ソース コード分析を表示することしかできません。
ここに画像の説明を挿入します

5. データが URL に直接配置されているのは明らかなので<img src="">、最終データをこのテストに結合しました。<img src="1" onerror="alert(1)">

payload:
1" οnerrοr="alert(666)

ここに画像の説明を挿入します

6. ファンタジーのポップアップ ウィンドウを表示しようと興奮してクリックしたとき、アクシデントが発生しました。ポップアップは表示されず、ソース コードにも情報がありませんでした: 7. そこで、表示するソース コードを探しに戻りました:
ここに画像の説明を挿入します
8
ここに画像の説明を挿入します
。ここで、次のようなラベルが表示されました。

<a href="javascript:void(0)" data-url="url=1" onerror="alert(666)" data-replycontent="null" data-description="test" data-moduleame="我的反馈" data-submittime="2022-07-14 19:30:41" data-replytime="null" class="feedback-detail">查看</a>

9. ジャンプが機能しないため、a タグ内でジャンプを直接閉じて XSS ステートメントを構築できます。前のペイロードの後の
重要なスプライシング ポイント
は次のようになります。

data-url="url=1" onerror="alert(666)"

復元後は次のようになります。

data-url=""

再構築後の理想的な状態は次のとおりです。

data-url=""><img src="1" onerror="alert(1)"></a>

ペイロード:

"><img src="1" οnerrοr="alert(1)"></a>

表示用に送信、成功したポップアップ ウィンドウ、保存された XSS
ここに画像の説明を挿入します
ここに画像の説明を挿入します
10. 位置を変更してソース コードを表示します:
ここに画像の説明を挿入します
xss ケース 2:
1. 特定のシステムには自己評価コンテンツがあり、ペイロード テストがここに直接出力されます:
ここに画像の説明を挿入します
2. Return結果を表示すると、以下が削除されていることがわかります</script>:
ここに画像の説明を挿入します
3. 表示サイズに制限があると思われます。html を確認すると、最大 25 個まで取得できます:
ここに画像の説明を挿入します
4. 次に、img を使用してテストします。

payload:
<img src="1" onerror="alert(1)">

ここに画像の説明を挿入します
5. img タグが正常に実行されていることがわかりますが、ここの等号は Thinking としてエンコードされています: ここのコードは、正規表現やその他の方法で = に最初に一致する可能性があります。一致した場合は、次のような&equals;
ものに置き換えられます。&equals;
次の:

<?php
$str = '=';
$str2 = '<img src="1" οnerrοr="alert(1)">';
//$str2 = '<img src="1" onerror = "alert(1)">';
$res = str_replace($str,"&equals;",$str2);
echo($res);
?>

ここに画像の説明を挿入します
6. 試してみると、= を [space]=[space] に変更すると、元のルールが妨げられ、= と一致することができなくなり、次のものがバイパスされる可能性があります

<img src="1" onerror = "alert(1)">

ここに画像の説明を挿入します
ソース コードを次のように表示します。
ここに画像の説明を挿入します
7. 感想:
上記の方法を使用してコードに実装し、規則性、文字列置換、その他の方法をテストしてみましたが、すべて失敗しました。= が置換されます。誰かが私にアドバイスをくれることを願っています!
ここに画像の説明を挿入します
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/qq_42383069/article/details/125790938