999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于DOM型跨站腳本攻擊防御的設計與實現

2018-01-13 01:45:20保永武
網絡安全技術與應用 2018年1期
關鍵詞:頁面

◆高 巖 保永武

(武漢虹旭信息技術有限責任公司 湖北 430000)

0 引言

跨站腳本攻擊(Cross-Site Scripting,XSS)在 OWASP TOP10-2017中被列為了第三威脅漏洞,僅次于注入和失效的身份認證和會話管理。成為近年來出現頻率最高的Web漏洞之一,跨站腳本攻擊具有攻擊范圍廣泛,跨平臺,破壞力強等特性受到攻擊者的重視;并且由于開發者以及用戶對跨站攻擊的防范意識的缺乏,很多開發人員在web開發過程中沒有意識到跨站腳本漏洞的危害,導致跨站腳本漏洞被忽視。

現有的防御措施大多數依靠服務端純文本過濾來實現,但服務端純文本過濾存在許多問題:首先是設定黑名單時很難全面包含所有惡意函數,無法正確地涵蓋所有標簽以及屬性,攻擊者可以利用黑名單外的標簽構造惡意代碼進行攻擊;其次是白名單的使用可以有效地阻止跨站腳本攻擊,但會極大地影響用戶體驗,導致用戶輸入的非惡意數據被過濾;然后是無法完全匹配瀏覽器特性,如“svg/onload”適用于Chrome瀏覽器,但不適用于IE瀏覽器;另外針對DOM型XSS攻擊防御效果不理想。

1 XSS概述

跨站腳本攻擊發生在目標網站中目標用戶的瀏覽器層面上,在用戶瀏覽器渲染整個 HTML文檔的過程中出現腳本指令控制用戶瀏覽器進行攻擊。

通常,根據XSS攻擊的攻擊方式以及利用手法不同,將跨站腳本分為三類:反射型XSS、存儲型XSS、DOM型XSS。

1.1 反射型跨站腳本攻擊

反射型跨站腳本攻擊的注入點通常存在于網頁的 URL中,主要實現方式是通過修改 URL地址內的參數,將惡意腳本作為輸入提交到服務端。由于服務端未對跨站腳本進行完全過濾就直接返回至客戶端,在瀏覽器響應內容中出現這段跨站腳本并在瀏覽器上執行,從而使用戶受到攻擊。反射型跨站攻擊具有實現難度較低、攻擊及時的特點,因此大多數跨站腳本攻擊案例為反射型跨站攻擊。在反射型跨站攻擊過程中,攻擊者通常利用精心構造的惡意代碼進行釣魚,攻擊者通過通信工具發送包含攻擊代碼的URL給受害者,當受害者點擊攻擊者構造的URL時會觸發攻擊者構造的攻擊代碼,然后向服務端發出請求,服務端響應后返回給受害者瀏覽器,攻擊代碼得以順利執行,攻擊行為完成。

1.2 存儲型跨站腳本攻擊

存儲型跨站腳本攻擊與反射型跨站腳本攻擊最明顯的差別在于攻擊者精心構造的跨站腳本會存儲在服務端(服務端的數據庫或者文件系統中),攻擊者再次請求該頁面時不需要再次提交跨站腳本。反射型跨站腳本攻擊的注入點通常存在于 URL中,存儲型跨站腳本攻擊的注入點一般出現在有交互功能的地方,如網站的留言板、評論區、博客日志、個人信息等。跨站腳本被存儲到服務端,當其他用戶或管理員瀏覽該信息時,瀏覽器將會直接從服務端讀取攻擊者構造的跨站腳本,并在瀏覽器執行該跨站腳本。

1.3 DOM型跨站腳本攻擊

DOM型XSS不同于上述提到的反射型XSS以及存儲型XSS,DOM型XSS取決于輸出位置,而不取決于輸出環境。其輸出點在DOM中,DOM型XSS是從JavaScript中輸出數據到HTML頁面的。因此DOM型XSS既有可能是反射型XSS,也有可能是存儲型XSS。DOM型XSS在服務端處理后的代碼輸出到頁面后,可能會再次經過客戶端腳本處理后輸出,因此僅僅在服務端部署防御是無法過濾DOM型XSS的。

2 跨站腳本攻擊防御系統設計

傳統的協同過濾(圖1)是將非信任數據先進行客戶端過濾,然后進行服務端過濾,最后輸出到客戶端的瀏覽器進行解析。攻擊者可以利用抓包軟件對HTTP數據包進行攔截并修改從而繞過客戶端過濾,導致客戶端過濾失效。針對此種攻擊,本文設計了一套更為完善的客戶端與服務端協同過濾體系,在服務端進行過濾后再通過客戶端對代碼進行過濾,過濾流程如圖2所示。該方法相對于純服務端過濾而言,可以減少服務端的壓力的同時有效防止DOM型跨站腳本攻擊,比純客戶端過濾在防范非DOM型跨站腳本攻擊中的效果更好。該方法不僅具有傳統的協同過濾的優點,而且可以防范攻擊者通過抓取HTTP并修改的方式繞過客戶端過濾,更好地針對跨站腳本攻擊進行防御。

圖1 傳統跨站腳本過濾流程圖

2.1 服務端過濾

通常攻擊者想要利用XSS漏洞進行攻擊,需要將網頁中的標簽閉合掉(如”

”,””,””等),或直接利用內聯函數注入惡意代碼。而想要構成此類攻擊,輸入數據時大多會包含一些固定的特殊字符。本文中把這些字符定義為敏感字符,再對這些敏感字符進行針對性地替換或刪除。常用的敏感字符包括:”<”、”>”、””、”/”、”\”、”%”。

圖2 改進后的跨站腳本過濾流程圖

對于敏感字符的處理,本文通過相應的符號對其進行替換。首先對輸入的非信任數據進行遍歷,判斷數據中的每個字符串是否包含前文所規定的敏感字符,若是敏感字符則對其進行替換。如表1所示。

表1 敏感字符替換表

經過上述操作,可完成對敏感字符的替換,破壞攻擊者所構造的代碼。將過濾后的代碼輸出至客戶端,由客戶端過濾系統完成后續過濾。

2.2 客戶端過濾

服務端通過對敏感字符進行替換的防御方式主要對非 DOM型跨站腳本過濾,但由于DOM型XSS的特性導致純服務端過濾并不能完全過濾跨站腳本,因此,針對DOM型XSS攻擊的防御將在客戶端進行部署。防御成功時可以通過查看頁面元素看到攻擊代碼以腳本的形式輸出,但是攻擊代碼并未執行。過濾流程圖如圖3所示。

圖3 客戶端過濾流程圖

(1)內聯函數處理

內聯函數是攻擊者常用的跨站腳本攻擊,本文對所有內聯函數進行攔截,采用監聽document對象的方法。因為所有的on事件對應的都是“document.on******”這類屬性,所以直接遍歷document對象即可獲得所有on事件,并對所有on事件進行攔截。提取on事件的屬性值,并對on事件的屬性值與黑名單進行正則匹配。若存在于黑名單中,則刪除on事件并向后臺發送警報。

(2)靜態腳本處理

使用MutationObserve函數監聽DOM樹中子節點和屬性的變動。當DOM節點或屬性發生變動時對其進行攔截后進行過濾處理。在過濾處理中對iframe標簽以及script標簽進行掃描,判斷標簽中是否含有src屬性,并對src屬性采取白名單匹配,若存在于白名單中則認定為非惡意輸入。

(3)動態腳本處理

針對腳本是動態生成的,因此需要在腳本插入DOM樹前捕獲腳本,并過濾惡意腳本,而MutationObserve方法只能監聽DOM中子節點的變動,無法在腳本執行之前過濾腳本。因此,需要對動態生成的腳本做采取以下措施:攔截動態生成的 src以及innerHTML屬性、重寫document.write屬性、重寫setattribute屬性、重寫Ajax請求、重寫Websocket請求、重寫postMessage請求。

3 跨站腳本攻擊防御系統測試

在系統整體功能測試中,需要在服務端引入JSP編寫的防御模塊進行服務端的跨站腳本防御,并在服務端向客戶端輸出過程中引入 JavaScript編寫的防御模塊進行客戶端跨站腳本防御。最終起到協同防御效果。

在系統測試中,本文將該防御系統部署在帶有輸入功能的留言板中,對留言板進行模擬攻擊測試。選取跨站攻擊腳本:

提交后頁面源代碼對應的腳本如下:

</textarea><input onload=alert(1)>

可以看到半角的”<”被替換成全角的” <”導致攻擊腳本以文本的形式輸出,無法執行腳本。證明了服務端過濾的有效性。

為了證明客戶端過濾的有效性,在此僅僅部署客戶端防御模塊,對留言板進行模擬攻擊測試。用同樣的攻擊代碼進行測試,提交后觀察頁面源代碼對應腳本如下:

代碼以腳本的形式輸出,但是”alert”并未執行。通過瀏覽器控制器可以看到攻擊腳本被客戶端攔截,證明了客戶端過濾的有效性。

4 總結

隨著Web應用的功能越來越全面,人們對Web應用越來越依賴,隨之而來的 Web安全問題也越來越嚴重。跨站腳本攻擊是一種非常常見的web攻擊,跨站腳本攻擊的防御是如今網絡安全研究的熱點 。本文提出的客戶端與服務端協同防御跨站腳本攻擊系統中,使用JavaScript語言編寫適用于主流瀏覽器。可對跨站腳本攻擊進行有效過濾的同時減輕服務端壓力。

[1]OWASP Top Ten project for 2017 [EB/OL].http://www.owasp.org.cn/owasp-project/ 2017-owasp-top-10,2017.

[2]邱永華.XSS跨站腳本攻擊剖析與防御[M].人民郵電出版社,2013.

[3]吳翰清.白帽子講Web安全[M].電子工業出版社,2012.

猜你喜歡
頁面
微信群聊總是找不到,打開這個開關就好了
大狗熊在睡覺
刷新生活的頁面
保健醫苑(2022年1期)2022-08-30 08:39:14
在本機中輕松完成常見PDF操作
電腦愛好者(2022年3期)2022-05-30 10:48:04
移動頁面設計:為老人做設計
工業設計(2016年1期)2016-05-04 03:58:09
Web安全問答(3)
通信技術(2012年4期)2012-02-15 07:10:35
同一Word文檔 縱橫頁面并存
網站結構在SEO中的研究與應用
幾種頁面置換算法的基本原理及實現方法
淺析ASP.NET頁面導航技術
主站蜘蛛池模板: 嫩草国产在线| 最新无码专区超级碰碰碰| 人妻精品全国免费视频| 69免费在线视频| 亚洲综合亚洲国产尤物| 国产xx在线观看| 国产欧美高清| 毛片免费在线视频| 99久久免费精品特色大片| 亚洲人妖在线| 在线观看精品国产入口| 日本三区视频| 亚洲男女在线| 欧美一道本| 国产福利影院在线观看| 午夜毛片免费看| 国产精品免费入口视频| 国产主播喷水| 亚洲国模精品一区| 69av免费视频| 亚洲天堂网在线视频| 中国一级特黄大片在线观看| 欧美在线三级| 国产91丝袜| 免费高清自慰一区二区三区| a天堂视频| 国产精品99久久久| 国产在线精彩视频论坛| 亚洲男人天堂久久| 久热精品免费| 亚洲中文在线视频| 91久久偷偷做嫩草影院| 国产jizzjizz视频| 久久6免费视频| 亚洲国产看片基地久久1024| 亚洲综合久久成人AV| 日韩国产一区二区三区无码| 国产精品一线天| 久久久久人妻一区精品色奶水| 波多野结衣AV无码久久一区| 亚洲一欧洲中文字幕在线| 毛片网站观看| 免费国产不卡午夜福在线观看| 91蝌蚪视频在线观看| 国产视频大全| 成人在线视频一区| 国产乱子伦无码精品小说| 素人激情视频福利| 九九香蕉视频| 视频在线观看一区二区| 亚洲精品制服丝袜二区| 国产乱肥老妇精品视频| 久久久久人妻精品一区三寸蜜桃| 亚国产欧美在线人成| 亚洲免费毛片| 国产成人精品亚洲日本对白优播| 中字无码精油按摩中出视频| 亚洲水蜜桃久久综合网站| 久久伊人操| 美女一区二区在线观看| 中文字幕在线一区二区在线| 精品视频在线观看你懂的一区| 精品国产亚洲人成在线| 人妻丰满熟妇αv无码| 日韩在线视频网站| 日韩国产亚洲一区二区在线观看| 久久国产成人精品国产成人亚洲| 国产精品亚洲一区二区三区z| 亚洲一区二区在线无码| 久久精品这里只有国产中文精品 | 亚洲欧美精品日韩欧美| 一级全免费视频播放| 最新国产成人剧情在线播放 | 亚洲色大成网站www国产| 午夜在线不卡| 丝袜亚洲综合| 97se亚洲综合不卡| 欧美综合成人| 亚洲天堂日韩在线| 国产在线观看第二页| 自偷自拍三级全三级视频| 日韩免费成人|