2020Android WebView安全攻防指南.docx

上传人:王** 文档编号:1348598 上传时间:2024-06-21 格式:DOCX 页数:53 大小:246.71KB
下载 相关 举报
2020Android WebView安全攻防指南.docx_第1页
第1页 / 共53页
2020Android WebView安全攻防指南.docx_第2页
第2页 / 共53页
2020Android WebView安全攻防指南.docx_第3页
第3页 / 共53页
2020Android WebView安全攻防指南.docx_第4页
第4页 / 共53页
2020Android WebView安全攻防指南.docx_第5页
第5页 / 共53页
2020Android WebView安全攻防指南.docx_第6页
第6页 / 共53页
2020Android WebView安全攻防指南.docx_第7页
第7页 / 共53页
2020Android WebView安全攻防指南.docx_第8页
第8页 / 共53页
2020Android WebView安全攻防指南.docx_第9页
第9页 / 共53页
2020Android WebView安全攻防指南.docx_第10页
第10页 / 共53页
亲,该文档总共53页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《2020Android WebView安全攻防指南.docx》由会员分享,可在线阅读,更多相关《2020Android WebView安全攻防指南.docx(53页珍藏版)》请在优知文库上搜索。

1、AndrOidWebVieW安全攻防指南2020 现工作于OPPO子午互联口安全实验室,heen id:heeeeen(曾用:小荷才露尖尖角) AndroidSecurityTopResearcher GOOgIePlayGPSRP致谢+ 演讲与文章 CNCERT2016:AndrOidAPP开放端口的安全 POC2018:HackingAndroidVoIPforFunandProfit BUndIe口水AndrOid序列化与反序列化不匹配漏洞详解 AndrOid中的特殊攻击面1.WebVieW攻击面2. WebVieW配置与使用3. WebViewUR1.校验4. WebView安全防御5

2、. 总结1.WebVieW攻击面APP特殊攻击面:端口、网络协议WebVieW安全攻防发展:;二恭so1.mo历史漏洞AndrOid4.4之前,系统存在JaVaSCriPtlnterfaee接口,可被反射调用执行任意代码(RCE)CVE-2012-6636CVE-2014-1939案例:某地图叩P1.AN环境命令执行http:/:6677/androidamap?action=yyy¶m2=value2&.&url=2. WebVieW的配置与使用 SetAllowFiIeAccess是否允许WebVieW访问文件, SetAllowFileAccessFromFiIeUR1.s(宽松

3、同源策略)是否允许file域下的js访问别的file域下的文件,APlIeVe1.16及以后默认为faIseSetAllowuniversalAccessFromFiIeUR1.s(更加宽松的同源策略)是否允许file域下的js访问别的域,包括file:下的文件,APIlevel16及以后犬认为false:;二恭so1.mo任意文件窃取1(应用克隆)前提: setAllowFileAccess(true) setAllowFileAccessFromFileUR1.s(true)11SetAllowuniversalAccessFromFiIeUR1.s(true)操纵WebVieW加载fil

4、e:sdcard(也有可能操纵用户点击后无感知下载)下的恶意HTM1./JS,通过AJAX窃取xmlHttpRequest.open(GET,ufiledatadataprivate-file11,false);:;二恭so1.mo任意文件窃取1(移花接木)只有SetAllOWFneACCeSS为TrUe(默认设置)呢?攻击APP受害APP1.操纵WebVjeW3.延时读取自身httpsbugs.chromium.org/p/chromium/issues/detail?id=144866任意文件窃取3(含沙射影)仍然只有SetAlIOWFiIeACCeSS为true攻击APP1.操纵WebV

5、jeW软链接5.访问4.再次操纵WebVieW受害APP恶意网址6.PaylOad读取自身document.cooke效果,CoOkieS被污染控制WebVieW访问攻击者共享的Symlink.htmlpP4679:/data/data/com.zlwu.StealwebvlewflleviataintedCMkie9IS-Itotal36-rwxrvxn1M_al57drwxrwsrwx2u.a157(Jrwxrwsrvx2u0-al57drwxrwxrwx2uS-al57Irwxrwxrwx1ual57UeIl57315219-ll-27eal57cache40%2819-11-26u0.

6、al57.cache4096219-ll-26Ue157u.al574896219-ll-26M2619-11-2610:5219:1219:1219:1219:12bridge.htalcachecode-cchesharedprefsynUk.taldatadtac(n.ziwu.webviewdpp/dpp.webview/CookiesKHt为布”的员示:hMdtSQlNformatAgon_*cINTEGeANOTNU1.Uost.kyTEXTNOTNU1.1.amTEXTNOTNU1.VVaiueTtXTNOTNU1.1.pethTEXTNOTNU1.1.MpifM.UlCIHTt

7、GlftNOTNUl5MCureMTEGCRNOTNU1.ljs.httponiyMEURNOTNulUM1.cc*ZiXCMTCGCfIMnNU1.1.hs.npe*WfTEGfRNOIMIDCFAUlT1.2Aindn*qla.Motndei.cootcteufcoc*(*fA/tab4ef11camMaCRtATETAB1.1.EXWrIONGVARCHARNOTNU1.1.UNIOU1.PRIMARYK(V.vvhjvIONQVARCHAR).MdMsqMt.autndenwa.1meu-Oi-:IM1.eomDabbte-m*n1危险的IoadDataWithBaSeUR1.域名和内

8、容同时可控,则可构造任意域下的XSS1publicvoidIoadDataWithBaseUR1.(String2345String,StringmimeTyezStringencoding,StringhistoryUrl)案例:Ge)OgIePlay某流行APP一系列deeplink导致WebVieW加载任意UHvictim-app:/c/receipt?url=url,原本用于调用GoogIeDoC服务预览Pdf在网页中点击deeplink攻击者可控!IrootelocalhostsMfnc-Ivvp88881.isteningon0.0.0.0(family0,port8888)Con

9、nectionfromgoogle-proxy-64-233-172-171.googI58673received!GETaccessOken=32yr*h75HTTP/1.1Host:172.104.240.45:8888Connection:keep-aliveUser-Agent:MOZilla/5.0(compatible;GoogleAppsViewer;)IACCePt-Encoding:gzip,deflate.br:;二恭sacEmo案例:Ge)OgIePlay某流行APPdeeplink力口载任意fragment,转化为WebVieWIOadDataWithBaSeUR1.漏

10、洞利用 ViCtim-app:/c/contact/2?fragmen_class=fragment可启动任意fragment,并可通过IntentEXtra传参, 寻找到一个带WebVieW的Fragment:GOOgIeM叩WebVieWFragment 可污染IOadDataWithBaSeUR1.的前两个参数,构造ViC域下的XSSwebview.loadDataWithBaselIR1.(11,google-map.htm,texthtm,.);生SOCEIJE安全建议基本配置 setAllowFileAccess(false) setAllowFileAccessFromFileU

11、R1.s(false) setAllowUniveralAccessFromFilellR1.s(false) setAllowContentAccess(false) 加载确定的HTM1.,可使用asset1111录WebSettingsWebSettings=webView.getSettings();WebSettings.SetAllowFileAccess(false);webView.IoadUrl(11file:IIIandroid_asset/sample/index.html11); 防范皿录穿越,对文件名进行过滤 尽量不使用IOadDataWithBaSeUrl3. Web

12、ViewUR1.校验基本问题1 if(checkDomain(url)2 GnablejavaScriptInterface();/或者WbViw.load(url):;二落sarCD一个简单案例1 if(url.StartsWith(11file:/11)2 SetJavaScriptEnbled(false);3 else4 SetJavaScriptEnabled(true);5 )有多种绕过方法:, 大写字母:File:* 前面加个空格:file:” 字符编码:file%2F” 可正常访问的畸形路径:f,filersdcardattackhtm,或i,filezVsdcardattack.htm,if(Uri.parse(Url).getScheme(),equals工gnoreCase(file”):;二落socmo常uH校验失效endWith未闭合点号 绕过: 修复:endsWith()if(host.endsWith(11)enableJavascriptInterface()绕过:使用StartSWith、contains、indexf、正贝J匹酉己等3F严格字符串匹酉己1 if(host.StartsWith()2

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 手机开发

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!