《《WEB安全策略XSS》PPT課件.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《《WEB安全策略XSS》PPT課件.ppt(25頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、安全測(cè)試,內(nèi)容概要,WEB安全策略 XSS觸發(fā)機(jī)制 XSS挖掘技巧 NetSparker工具,WBE安全策略,瀏覽器同源策略 Cookie安全模型 Flash安全策略,瀏覽器同源策略,也叫同域策略,指的是同協(xié)議、同域名和同端口。簡單的說,就是要求動(dòng)態(tài)內(nèi)容(如:JS、VBS )只能讀取或者修改與之同源的HTTP應(yīng)答和Cookie,而不能讀取來自 不同源的內(nèi)容。瀏覽器的同源策略限制了腳本只能訪問同源下的資源。,瀏覽器同源策略,瀏覽器同源策略,來自同一個(gè)域不同子域的頁面之間,通過對(duì)JS的變量document.domain進(jìn)行相應(yīng)設(shè)置(頁面上一級(jí)域的值),可以有限度的違反同源策略,允許不同子域頁面之間
2、的相互訪問。例如: document.domain = “; 因此:如果能向域中的一個(gè)頁面注入JS,就也能給域中其他任何一個(gè)頁面注入。,瀏覽器同源策略,攻擊過程:已經(jīng)在,瀏覽器同源策略,同源策略不允許跨域信息的提交,XMLHttpRequest對(duì)象已經(jīng)不允許跨域發(fā)送HTTP請(qǐng)求。如,瀏覽器同源策略,跨站腳本攻擊中,往往需要將被攻擊者的信息發(fā)送到指定域的URL,或者需要根據(jù)不同的用戶信息向被攻擊者發(fā)送不同的JS代碼,因此需要解決跨域雙向通信。由于同源策略并不禁止頁面中應(yīng)用其他域的JS腳本和圖片等元素,因此可以利用這點(diǎn)通過GET參數(shù)的方式將被攻擊者的信息發(fā)送至指定URL。大數(shù)據(jù)事先載入一個(gè)隱藏的i
3、frame,將Form表單放入iframe,再以POST方式提交。,Cookie安全模型,在客戶端,可以通過document.cookie的變量來讀寫cookie,為了保護(hù)cookie中用戶的隱私信息不被讀寫,RFC2109為其定義了類似于同源策略的安全策略。服務(wù)器不僅可以對(duì)Cookie進(jìn)行讀寫,還可以為Cookie設(shè)置安全屬性。Cookie的安全屬性包括:Domain、Path、Secure、Expire、HttpOnly,Cookie安全模型,Domain:與同源策略類似,Domain可以設(shè)置成更高一級(jí)的域名;如:的domain可以設(shè)置為:,所有*就可使用此cookie。任何域都不能將co
4、okie設(shè)置為頂級(jí)域名*.com Path:包含URL路徑,用于提高安全模型的控制力度,可選,如果設(shè)置了Path,那么瀏覽器只會(huì)把Cookie發(fā)送給路徑與Path吻合的頁面。如: ,Cookie安全模型,Secure:可選,若設(shè)置了該屬性,則只有遇到HTTPS請(qǐng)求時(shí)該Cookie才會(huì)被發(fā)送。但HTTP和HTTPS的響應(yīng)都可以對(duì)Secure屬性進(jìn)行設(shè)置。 Expires:設(shè)置該屬性,指定Cookie的失效時(shí)間。沒有設(shè)置該屬性的Cookie在瀏覽器關(guān)閉時(shí),會(huì)被刪除,即會(huì)話Cookie; HttpOnly: 設(shè)置該屬性后,客戶端將不允許通過JS的document.cookie()獲取該cookie,
5、Cookie安全模型,如果未設(shè)置http only屬性,攻擊者可以獲取Cookie并寫新的Cookie。代碼樣例:,Cookie安全模型,假設(shè)黑客發(fā)現(xiàn),Flash安全策略,與同源策略類似,來自某個(gè)域的flash應(yīng)用只可以讀取來自該域的響應(yīng)。但是,如果在一個(gè)域上的安全策略允許跟Flash應(yīng)用程序所在域通信,則允許跨域通信。Adobe公司將此策略定義在crossdomain文件中,錯(cuò)誤的配置文件可能導(dǎo)致Flash突破同源策略,導(dǎo)致安全問題。如:,Flash安全策略,對(duì)跨站攻擊者有幫助的類: Socket類:可以創(chuàng)建連接至所有被允許的域的原始TCP套接字連接; ExternalInterface類:
6、可以從flash文件中運(yùn)行瀏覽器中的JS; XML和URLLoader:可以以用戶的名義發(fā)送HTTP請(qǐng)求到所有被允許的域,實(shí)現(xiàn)跨域通信;,XSS觸發(fā)機(jī)制,直接觸發(fā) 利用HTML標(biāo)簽屬性觸發(fā) 利用HTM事件觸發(fā) 利用CSS觸發(fā),直接觸發(fā),在HTML頁中插入腳本標(biāo)記。JS嵌入到HTML中的兩種方式: 1)直接嵌入標(biāo)簽 document.write(“hello world!”); 2)在外部以js文件的形式嵌入 ,利用HTML標(biāo)簽屬性觸發(fā),利用HTML標(biāo)簽中能夠訪問文件的屬性來執(zhí)行JS代碼。JS中包含一個(gè)URL偽協(xié)議,可以使用javascript:加上任意JS代碼來表示一個(gè)URL,瀏覽器裝載此UR
7、L時(shí),JS被執(zhí)行。包括:src、href、dynsrc、longdesc、lowsrc等屬性。 ,利用HTML事件觸發(fā),HTML標(biāo)簽中定義了一系列事件,如:鼠標(biāo)、鍵盤事件觸發(fā)的事件,當(dāng)滿足一定條件時(shí)事件被觸發(fā),JS代碼被執(zhí)行。如標(biāo)簽中的onError事件,當(dāng)圖片載入失敗時(shí), onError被觸發(fā),JS代碼被執(zhí)行。 ,利用CSS觸發(fā),CSS嵌入HTML中的三種方式: 1)以.css文件的形式: 2)以標(biāo)簽的方式: alert(XSS); 3)在標(biāo)簽中以style屬性的方式。 ,利用CSS觸發(fā),IE支持在CSS中使用expression,用來把CSS和JS結(jié)合起來,即CSS后跟一段JS代碼,CSS屬性的值等于JS代碼的執(zhí)行結(jié)果: h1color:#CCC;height:expression(alert(xss); ,XSS挖掘技巧,過濾規(guī)則:1.關(guān)鍵字過濾:如:javascript等;2.等特殊字符轉(zhuǎn)碼。 但是HTML并不遵循XHTML標(biāo)準(zhǔn),所以可以將HTML標(biāo)簽屬性值大小寫、混合寫,而且標(biāo)簽屬性可以單引號(hào)、雙引號(hào),也可以不用引號(hào):如: 寫為可繞過過濾規(guī)則,繞過過濾規(guī)則,插入控制符的ASCII碼混淆,不影響原代碼的執(zhí)行。如tab()”.,