當前位置:
首頁 > 知識 > 前端安全之XSS攻擊

前端安全之XSS攻擊

來自: 海角在眼前 - 博客園


鏈接:www.cnblogs.com/lovesong/p/5199623.html


XSS(cross-site scripting跨域腳本攻擊)攻擊是最常見的Web攻擊,其重點是「跨域」和「客戶端執行」。有人將XSS攻擊分為三種,分別是:


1、Reflected XSS(基於反射的XSS攻擊)


2、Stored XSS(基於存儲的XSS攻擊)

3、DOM-based or local XSS(基於DOM或本地的XSS攻擊)


Reflected XSS


基於反射的XSS攻擊,主要依靠站點服務端返回腳本,在客戶端觸發執行從而發起Web攻擊。


例子:


1、做個假設,當亞馬遜在搜索書籍,搜不到書的時候顯示提交的名稱。


2、在搜索框搜索內容,填入「」, 點擊搜索。


3、當前端頁面沒有對返回的數據進行過濾,直接顯示在頁面上, 這時就會alert那個字元串出來。


4、進而可以構造獲取用戶cookies的地址,通過QQ群或者垃圾郵件,來讓其他人點擊這個地址:


PS:這個地址當然是沒效的,只是舉例子而已。


結論:

如果只是1、2、3步做成功,那也只是自己折騰自己而已,如果第4步能做成功,才是個像樣的XSS攻擊。


開發安全措施:


1. 前端在顯示服務端數據時候,不僅是標籤內容需要過濾、轉義,就連屬性值也都可能需要。


2. 後端接收請求時,驗證請求是否為攻擊請求,攻擊則屏蔽。


例如:


標籤:


轉義


屬性:


如果一個input的value屬性值是


就可能出現

點擊input導致攻擊腳本被執行,解決方式可以對script或者雙引號進行過濾。


Stored XSS


基於存儲的XSS攻擊,是通過發表帶有惡意跨域腳本的帖子/文章,從而把惡意腳本存儲在伺服器,每個訪問該帖子/文章的人就會觸發執行。


例子:


1. 發一篇文章,裡面包含了惡意腳本


2. 後端沒有對文章進行過濾,直接保存文章內容到資料庫。


3. 當其他看這篇文章的時候,包含的惡意腳本就會執行。


出現這種情況。


結論:


後端儘可能對提交數據做過濾,在場景需求而不過濾的情況下,前端就需要做些處理了。

開發安全措施:


1. 首要是服務端要進行過濾,因為前端的校驗可以被繞過。


2. 當服務端不校驗時候,前端要以各種方式過濾裡面可能的惡意腳本,例如script標


簽,將特殊字元轉換成HTML編碼。


DOM-based or local XSS


基於DOM或本地的XSS攻擊。一般是提供一個免費的wifi,但是提供免費wifi的網關會往你訪問的任何頁面插入一段腳本或者是直接返回一個釣魚頁面,從而植入惡意腳本。這種直接存在於頁面,無須經過伺服器返回就是基於本地的XSS攻擊。


例子1:


1. 提供一個免費的wifi。


1. 開啟一個特殊的DNS服務,將所有域名都解析到我們的電腦上,並把Wifi的DHCP-DNS設置為我們的電腦IP。


2. 之後連上wifi的用戶打開任何網站,請求都將被我們截取到。我們根據http頭中的host欄位來轉發到真正伺服器上。

3. 收到伺服器返回的數據之後,我們就可以實現網頁腳本的注入,並返回給用戶。


4. 當注入的腳本被執行,用戶的瀏覽器將依次預載入各大網站的常用腳本庫。

前端安全之XSS攻擊



PS:例子和圖片來自,http://www.cnblogs.com/index-html/p/wifi_hijack_3.html不是我寫的,請注意!


這個其實就是wifi流量劫持,中間人可以看到用戶的每一個請求,可以在頁面嵌入惡意代碼,使用惡意代碼獲取用戶的信息,可以返回釣魚頁面。


例子2:


1. 還是提供一個免費wifi


2. 在我們電腦上進行抓包


3. 分析數據,可以獲取用戶的微信朋友圈、郵箱、社交網站帳號數據(HTTP)等。

前端安全之XSS攻擊



PS:這個是我的測試,在51job頁面登錄時進行抓包,可以獲取帳號密碼。


結論:


這攻擊其實跟網站本身沒有什麼關係,只是數據被中間人獲取了而已,而由於HTTP是明文傳輸的,所以是極可能被竊取的。


開發安全措施:


1. 使用HTTPS!HTTPS會在請求數據之前進行一次握手,使得客戶端與服務端都有一個私鑰,服務端用這個私鑰加密,客戶端用這個私鑰解密,這樣即使數據被人截取了,也是加密後的數據。


總結


XSS攻擊的特點就是:盡一切辦法在目標網站上執行非目標網站上原有的腳本(某篇文章說的)。本地的XSS攻擊的示例2其實不算XSS攻擊,只是簡單流量劫持。前兩種XSS攻擊是我們開發時候要注意的,而流量劫持的則可以使用HTTPS提高安全性,。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 程序源 的精彩文章:

黑客是如何發現女朋友出軌的?
Golang在京東列表頁實踐總結

TAG:程序源 |

您可能感興趣

淺析前端安全之 XSS
利用XSS繞過CSRF防禦
常見的 CSRF、XSS、sql注入、DDOS流量攻擊
新型滲透手法:利用XSS繞過WAF進行SQL注入
ezXSS:一款功能強大的XSS盲測工具
某搜索引擎Self-XSS點擊劫持案例分享
GoFlex家庭網路存儲設備受XSS和MitM攻擊威脅 暴雪遊戲存在嚴重漏洞
SQL注入與XSS跨站腳本的基本原理
Oculus CDN伺服器的XSS漏洞
iOS漏洞——Web View XSS
Facebook CDN伺服器的XSS漏洞
如何預防應用程序中的XSS漏洞
Electron曝XSS 漏洞,Atom、VS Code 等受影響
看我如何繞過某託管公司域上的強大XSS過濾器
Google 將刪除 Chrome 內置的 XSS 保護功能
如何為開發人員演示DOM型XSS漏洞利用過程
Safari瀏覽器bug可引發XSS
對 XSS 的一次深入分析認識
Branch.io漏洞將Tinder,Shopify,Yelp用戶暴露於XSS攻擊下
XSS繞過filter高級技術 part1