xss跨站腳本攻擊(Cross Site Scripting)縮寫為css,因與層疊樣式表重名而改為XSS,是一種網絡攻擊方式。研究表明,目前xss攻擊已成最主流的網絡web攻擊方式,約佔全球網絡攻擊的70%。
XSS簡介
Xss攻擊通常通過網頁開發時留下的漏洞,向有xss漏洞的網站注入惡意的Html腳本惡意指令,在用戶瀏覽網頁時,將自動執行注入的腳本從而達到攻擊的目的,這些惡意腳本程序通常是Javascript,也包括Java、ActiveX、 VBScript、 Flash、HTML等,攻擊成功後,攻擊者,可進一步得到更高的權限(如執行一些操作)、攻擊者採用Xss攻擊,可偷取用戶Cookie、密碼等重要數據,進而竊取用戶財產及情報信息。
近些年來,有很多知名網站遭到過xss攻擊,如新浪微博,及以CSDN為代表多個網站用戶密碼個信息洩露事件。
Xss攻擊演示
Xss攻擊有有三種類型
1.反射型XSS攻擊也叫非持久型攻擊
最普遍的xss攻擊類型。用戶訪問伺服器-跨站連結-返回跨站代碼。主要步驟是:
攻擊者構造包含惡意代碼的特殊url。
用戶打開帶有惡意代碼的url時,服務端將惡意代碼從URL中取出,拼接在html中返回瀏覽器,之後用戶會收到響應後解析執行混入的惡意代碼。
惡意代碼竊取用戶數據發送到攻擊者網站,或者冒充用戶行為,調用目標網站接口執行攻擊者指定操作。
一個比較典型的案例:
新浪微博之前遭到攻擊就是因為攻擊者發布了一個含有惡意腳本的URL,用戶點擊該URL,腳本會自動關注攻擊者的新浪微博ID,發布含有惡意腳本的URL微博,攻擊就被擴散了。
2.存儲型XSS攻擊也叫持久型跨站攻擊
最直接的危害類型,跨站代碼存儲在伺服器(資料庫),主要步驟是:
攻擊者將惡意代碼提交到網站伺服器(資料庫)中。
用戶打開網站時,惡意代碼會從資料庫中取出,顯示在Html中。
用戶瀏覽器收到響應後解析執行混入的惡意代碼,惡意代碼竊取用戶數據並發送到攻擊者網站,或者冒充用戶行為,調用目標網站接口執行攻擊者的指定操作。
這種這攻擊方式常用到論壇發帖、商品評價、用戶私信等。
3.DOM跨站(DOM XSS)
DOM(document object model文檔對象模型),客戶端腳本處理邏輯導致的安全問題。主要步驟是:
攻擊者構造特殊的URL,包含惡意代碼
用戶用瀏覽器打開含有惡意代碼的URL,瀏覽器解析執行後,前端JS取出URL的惡意代碼並執行。
惡意代碼執行攻擊操作發送回攻擊者。
基於DOM的XSS漏洞:通過修改用戶的網頁腳本在修改本地頁面DOM環境時未進行合理的處置,而使得攻擊腳本被執行。在攻擊過程中,伺服器的響應頁面並無變化,引起客戶端腳本執行結果差異的原因就是對本地DOM的惡意篡改利用。
如何防範xss攻擊呢?
1.提高程式設計師的較高編輯能力和安全意識。
2.瀏覽器主動進行xss識別,如用chrome瀏覽器就會自動識別xss攻擊代碼。
3.伺服器端對用戶輸入的內容進行過濾,如將重要的cookie標記為http only,進行數據校驗及html encode處理,過濾移除特殊的html標籤。< 替代 <, > 替代 >, " 替代 "。
4.過濾JavaScript 事件標籤。例如 "onfocus" , "οnclick="等等。
5.可使用web防火牆或網站平臺進行xss防禦。
目前主流的xss防範防禦平臺是GoodWaf,不僅可防禦xss,對一些主流的其它網絡攻擊方式也能防禦,還有漏掃,態勢感知功能等時刻監控網站安全: