請問一下各位大大,這次使用掃弱軟體後,出現許多DOM-based漏洞如下(環境為WAMP):
<img src="https://site/images/100x100.png"
style="background-image:url
('https://site/upload/health_package_class/
3"onMouseOver=alert(4983)//
/20181211090646342.jpg');background-repeat:no- repeat;backgroundsize:contain;background-position : 50% 50%" />
<a target="_blank"href="https://site/upload/health_package_class/
3"onMouseOver=alert(4983)//
/20200422115039234.pdf">20200422115039234.pdf</a>
他的原因是:未正確地將使用者輸入值的危險字元消毒
他的修復建議是:檢查危險字元注入可能的解決方案
請問一下這種的消毒要怎麼做呢?
php本身就有function可以處理了
echo htmlspecialchars(變數值,ENT_QUOTES);
第二個參數ENT_QUOTES表示連同單引號也要處理
https://www.php.net/manual/en/function.htmlspecialchars.php
會出現XSS的原因是你在頁面輸出了由「不可信的變數」組成的內容
所以在echo時,用這個function處理過,一些特殊字元都會被轉成html實體編碼
PS.通常報告會告訴你是那個變數有問題
這篇在網路上有看過 但是不明白那個白名單是要寫在哪邊?
你被xss的後端code是長怎麼樣的?
<div class="form-group row">
<label class="col-md-2 form-control-label" for="text-input"></label>
<div class="col-md-6">
<img src=
"<? echo $_env["site_url"]."images/"
.$_pageenv["filename_tnfile"].".png"; ?>
" style="background-image:url
('<?echo$_env["site_upload_url"]."news/".$data["img"];
?>');background-repeat:no-repeat;background-size:contain;background-position : 50% 50%" />
</div>
</div>
第一段的
變數用 htmlspecialchars()
處理過,因為javascript event handlers都會有 '
或 "
看起來是圖片名稱有問題,
我的圖片名稱都是自己命名的.
白箱/源碼掃描的話,guid也不一定能過喔,
在檢查頁面流程時,不會去管你的值長啥樣,
而是你做了那些防範處理
mike8864aabb
但是這樣用就不會有XSS攻擊了啊,
至少不會出現在圖片.
小魚
你知道不會,但白箱掃描就是他不會知道你的值是什麼,
所以在流程上一定要求你做到xss的防範
我們曾遇到把變數的值都寫死了,還能產出XSS的風險
而且客戶用的是要很多$$才買的起的掃描工具