公司近日又被攻防演練中心掃出漏洞,此次不是注入(injection),而是什麼xss,一時很懵,不知道是個啥玩意。css
報文:html
GET /login.jsp?doWhat=viewSharedDoc&documentid=121864"><script>alert(7146)</script> HTTP/1.1前端
Host: xxxxxx
web
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E; rv:11.0) like Gecko服務器
Accept: */*cookie
Accept-Encoding: gzip, deflatexss
Referer: http://xxxxxxx/?doWhat=viewSharedDoc&documentid=121864jsp
Cookie: csweb-8000-PORTAL-PSJSESSIONID=0DJCEypyZmrkITtxaZ9P3ynrBOo5DvO7!-2068434490; PS_TOKEN=pwAAAAQDAgEBAAAAvAIAAAAAAAAsAAAABABTaGRyAk4Acwg4AC4AMQAwABRrJffFias/y+LnV/kcJcea8ndB/2cAAAAFAFNkYXRhW3icJYo7DkBQFAXHJ0qFfRA8ggU8RCHi02jeImzP4hzcYuZMci8gDHzPk2+f75KTiQPHIFo2diLLrIwXVa92jKxUJTkFHan8sqD92JBRU4n/NvK7jP54AOmmDJ4=; SignOnDefault=ZJU_GUEST; PS_TOKENEXPIRE=18_Sep_2019_01:53:35_GMT; JSESSIONID=3F488447A3EF5DA1FFCB83C9C1082CF3ide
Accept-Language: zh-cn學習
截圖
通過度娘一番學習,才知道它是 Cross Site Scripting 跨站腳本的意思,它的攻擊主要分三種:
一是經過URL帶參數的GET方式,將參數中加入腳本,咱們此次被掃出的就是這種狀況,如: /login.jsp?doWhat=viewSharedDoc&documentid=<script>alert(7146)</script>。這種方式也稱爲「反射型」。
經測試,IE11及Chrome會自動屏蔽這類攻擊,但火狐firefox仍能執行:
二是經過提交功能(如評論、留言、回覆之類)將腳本上傳並存儲到服務器,之後每一個人訪問都被會執行,這是個一勞永逸的好辦法。還能夠上傳一些誘人圖片來假裝,老年人最容易上當的那種:
<img onclick="window.location.href='http://xxxxxxx'" width='300' src='img/flower.jpg'/>
三是不通過服務器處理,而是在前端實時經js解析DOM形成的。
形成的危害主要有:
1.盜取cookie:
如在textarea之類的裏面輸入:<img src="null" onerror='alert(document.cookie)' />
2.經過css破壞結構和顯示樣式
3.重定向劫持流量
4.佔用服務器資源,形成正常訪問緩慢
5.經過iframe、frame、XMLHttpRequest或Flash等方式,執行管理動做,或盜發微博、私信,好友等
6.利用被攻擊的域,以受信來源訪問其餘網站,執行不容許通常來源網站執行的操做。
如何防範:
1.控制參數格式:過濾字符onerror,onclick, <iframe>, <frame>, <script>,<a>之類;對參數進行編碼和長度限制;
2.保護cookie:設置httponly爲true。
參考文章: