一、測驗程序
通過手工測驗,構造用戶可控引數訪問,發現網站部分頁面對用戶可控引數未做過濾限制,存在XSS跨站腳本漏洞,測驗如下:
POST /task/notepad/insertNotepad HTTP/1.1
Host: www.xxx.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Referer: https://www.xxx.com/task/notepad/add
Content-Length: 280
Content-Type: multipart/form-data; boundary=---------------------------2637079957471
Cookie: JSESSIONID=7BCE4FAD0E3F0ED2A285AF37461DA424
DNT: 1
Connection: close
-----------------------------2637079957471
Content-Disposition: form-data; name="notepadType"
1
-----------------------------2637079957471
Content-Disposition: form-data; name="notepadContent"
test"/><imG src=1 one rror=alert(1)>
-----------------------------2637079957471--
以下測驗跨站腳本漏洞,打開頁面效果圖:

二、風險分析
攻擊者可能利用本漏洞對網站的訪問者進行惡意攻擊,例如竊取訪問者的Cookies或者進行“釣魚”欺騙,嚴重威脅訪問者的安全利益等問題,該漏洞風險等級為高,
三、修復建議
跨站腳本攻擊漏洞危害程度極高,建議對所有可允許用戶輸入資料的資料點進行防護,常用的修補方式為在服務端禁止或者轉義用戶提交資料中的HTML代碼,
白名單限制:對站內所有用戶提交的資料使用白名單限制,將用戶提交的資料規定在限定的字符,
黑名單限制:使用黑名單限制,過濾或轉義用戶提交資料中的特殊符號,如尖括號(<、>)、斜杠(/)、半角圓括號((、))、半角引號(”)、半角單引號(’)、等號(=)、半角空格,也要注意常用HTML中常用到的script、div、img、src、iframe、onmouseover、onmousemove等,使用黑名單限制要格外注意用戶提交的資料出現在SCRIPT腳本中而不需要特殊的字符便可執行的情況,
四、解決方法
在服務器添加過濾器,轉義用戶提交的資料,教程如下,
解決教程: 使用過濾器防止SQL注入XSS腳本注入
有些朋友會問,為什么一定要在服務器做處理,前端判斷就可以啦,其實攻擊者不是直接在您的網站頁面中進行注入,而是構造可控引數進行訪問,直接繞過前端判斷陳述句,所以前端可做,服務器必須做!
五、測驗效果
加入過濾器過濾特殊符號后,再進行測驗(如下圖),漏洞修復成功!

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/247606.html
標籤:其他
上一篇:攻防世界SignIn
