白帽子講web安全-跨站腳本攻擊(2)

一 XSS攻擊進階

1 XSS攻擊平臺

攻擊平臺的主要目的就是為了演示xss的危害,以及方便測試使用,常見的有attack API,BeFF,XSS-Proxy

2終極武器:XSSWorm

(以往的蠕蟲都是利用服務(wù)器端軟件漏洞進行傳播的)

像有名的samy worm和百度空間蠕蟲

xss worm攻擊是有一定條件的:一般來說,用戶之間發(fā)生交互行為的頁面,如果存在存儲型XSS,則比較容易發(fā)起XSS worm攻擊。

3xss構(gòu)造技巧

比如利用字符編碼,

? ? ? 繞過長度限制(某些環(huán)境下可以用注釋符繞過長度限制),

? ? ? 使用<base>標(biāo)簽,

? ? ? Window.name的妙用(window對象是瀏覽器的窗體,而并非document對象,因此很多時候window對象不受同源策略的限制)

4容易被忽略的角落:Flash XSS

前面的XSS攻擊都是基于HTML的,其實在flash中同樣也會造成xss攻擊。

限制flash動態(tài)腳本的最重要的參數(shù):allowscriptaccess

控制flash與外部網(wǎng)絡(luò)進行通信:allowNetworking

5javascript開發(fā)框架真的高枕無憂嗎

目前最為流行的jQuery,框架只是對JavaScript語言本身的封裝,并不能解決代碼邏輯上產(chǎn)生的問題。在jQuery中有一個html()方法,這個方法如果沒有參數(shù),就是讀取一個DOM節(jié)點的innerHTML,如果有參數(shù),則會把參數(shù)值寫入該節(jié)點的DOM節(jié)點的innerHTML中,這個過程會產(chǎn)生dom based xss.

二xss的防御

1httponly

嚴(yán)格的說:httponly并非為了對抗XSS-httponly解決的是xss后的cookie劫持攻擊,httponly是在set-cookie時標(biāo)記的。

但是xss攻擊帶來的不光是cookie劫持問題,還有竊取用戶信息,模擬用戶身份執(zhí)行操作等諸多嚴(yán)重后果。

2輸入檢查

檢查邏輯必須放在服務(wù)器代碼中實現(xiàn),如果只在客戶端中,很容易被繞過。

現(xiàn)在普遍做法,是在客戶端JavaScript和服務(wù)器端同時檢測,客戶端的檢測可以阻斷大部分攻擊,從而節(jié)約服務(wù)器資源。

3輸出檢查

htmlencode ,javascriptencode,xmleccode......(安全編碼函數(shù))

xss攻擊主要發(fā)生在MVC架構(gòu)中的view層。

導(dǎo)致xss攻擊發(fā)生的原因,并不是使用auto-escape就萬事大吉了,xss的防御要區(qū)分情況對待。

4正確地防御XSS

xss產(chǎn)生的本質(zhì)原因:
xss的本質(zhì)還是一種HTML注入,用戶的數(shù)據(jù)被當(dāng)成了HTML代碼一部分執(zhí)行,從而混淆了原本的語義,產(chǎn)生了新的語義。

如果網(wǎng)站使用了MVC架構(gòu),那么xss就發(fā)生在view層,在應(yīng)用拼接變量到HTML頁面時產(chǎn)生。那么用戶提交數(shù)據(jù)進行輸入檢查的方案,其實并不是在真正發(fā)生攻擊的地方做防御。

在HTML標(biāo)簽中輸出,在HTML屬性中輸出,在<script>標(biāo)簽中輸出,在事件中輸出。在css中輸出等等各有自己的防御方法。

5處理富文本(允許用戶提交一些自定義的html代碼)

HTML是一種結(jié)構(gòu)性語言,比較好分析,通過htmlparser可以解析出HTML代碼的標(biāo)簽,標(biāo)簽屬性和事件

在過濾富文本時,不應(yīng)該包括事件這種動態(tài)效果,在標(biāo)簽選擇上,應(yīng)該使用白名單,避免使用黑名單。

過濾css時,需要一個cssparser 對樣式進行智能分析。

6防御dom based xss

一些函數(shù)導(dǎo)致需要分語境使用不同的編碼函數(shù)。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容