关于Android ZIP文件目录遍历缺陷,你了解多少?
2023-04-18 来源 : 生活
在上图红色标示出的代码中所,这样一来将提供的压缩成明文中所的明文名开展拼接,不必对梯度中所前提自带含 ../或者 ..codice_就做到过滤器辨别,即:明文英文名称很难自带含"../"这种特殊codice_做到处理。也就是说情况下,zip 明文中所明文名为 og_test_zip.txt,不必被iTunes到 /data/data/ddns.android.vuls/cache/og_test_zip.txt【如下图】。如果身份验证特征一个 ../files/og_test_zip.txt的明文名,则拼接后的明文名为 /data/data/ddns.android.vuls/cache/../files/og_test_zip.txt,其不必iTunes到vuls APP运运用于本地的/files/录入下,当然如果是想做到其余部分本地明文的话,只要得用完全相同名字需其余部分
框架一个zip poc明文,步骤如下:
创建一个og_test_zip.txt,内容为Orangey test zip poc!将 og_test_zip.txt 压缩成为 og_test_zip.zip切记,别用winrar推开来简简化明文名,反正用winrar推开来简简化明文名从来不,这里,我们运运用于 7-Zip 推开明文并简简化明文名为什么要转作压缩成自带根据来简简化,大家看下图: 反击效果如下 意味着抓自带host该网站或GET 请电话号码为:p://www.example.com/test.zip,两种简简化新方法第一种:这样一来通过抓自带工具,开展简简化请的host和梯度电话号码为我们自己的,回事抓自带工具就是做到了一个中所间人反击的主人公
Burp配置一下意味着的host和端口,当然也可以自行抓到自带后自行简简化
第二种:反校对APK为smali,然后简简化完全相同的smali明文中所请的电话号码
# 反校对APKapktool.jar d -f vuls_v4.4.apk -o vuls_v4.4 # 简简化好后回校对APK并单张以及丢到模拟器中所接入java -jar apktool.jar b vuls_v4.4 -o vuls_v4.4-key.apkjava -jar signapk.jar testkey.x509.pem testkey.pk8 vuls_v4.4-key.apk vuls_v4.4-key_debug.apk如果运运用于一个系统启动时代码前未做到单张冗余,为了让录入穿过防火墙开展其余部分,可意味着稳定的随意代码可执行。此外由于在明文系统对中所载入了可可执行明文,还可以意味着持久简化反击的效果
在Android中所,system.loadLibrary()在在运运用于的lib录入中所启动时 .so明文,而System.load()是用某个.so明文的绝对梯度启动时,这个.so明文可以亦非运运用于的lib录入中所,可以在SD卡中所,或者在运运用于的files录入中所,只要运运用于有读的职责录入中所需
在files录入中所,运运用于具有载入职责,为了让ZIP明文录入加载防火墙可以换用扔掉原先的so明文,大幅提高远程号令可执行的最终目标。而运运用于的lib录入是软文档到了/data/app-lib/运运用于录入,属于system服务器,第三方运运用于在可执行时不必载入/data/app-lib录入的职责
0x03 虎鲸IEZIP明文录入加载【防火墙复现】样本iTunes电话号码:_11.4.18_free
如今知道了一个运运用于的沙盒数据资料的详细信息,比如一些隐私数据资料存摆在SharedPreferences.xml中所,那么这时候我们可以为了让这个防火墙,把欺骗明文重新命名成 ../../../../data/data/xxx.xxx.xxx/shared_pref/info.xml,这样在运运用于ZipEntry开展刻录明文的时候,因为这样一来运运用于了ZipEntry.getName新方法或者明文名,然后这样一来释放刻录到本地了,所以这时候就相当于换用了本运运用于的沙盒数据资料了,这个也是为了让了app本身的职责来载入沙盒数据资料
虎鲸IE虎鲸IE的题材设置中所强制服务器通过因特网iTunes在此之后题材开展换用,如下:
dwp 明文是虎鲸IE自己界定的题材明文自带,本质上是一个 zip 自带,全都有如下三个资源明文:
GET _1498465941.dwp HTTP/1.1 tar -tf 110010060sea_1498465941.dwp或运运用于7z压缩成工具的号令
7z l 110010060sea_1498465941.dwp那么,如何意味着zip录入穿过了,不对可以尝试去框架一个这样的zip自带,去换用IE的iTunes自带,为重号令去明文名,使得换用IE中所的关键明文
由于虎鲸IE不曾对刻录的明文开展验证,且格斯系统对zip瓦的意味着行为是强制刻录明文到所在录入之外,因此通过中所间人反击,简简化HTTP请前往题材明文zip自带中所的内容,可以意味着在虎鲸IE享有职责的录入写明文
运运用于如下 Python 代码生成一个可以触发该防火墙的 zip 自带:
# -*- coding: utf-8 -*- import zipfile import sysif __name__ == "__main__": try: with open("og_test_zip.txt", 'rb') as f: binary = f.read() zipFile = zipfile.ZipFile("og_test_zip.zip", "a", zipfile.ZIP_DEFLATED) info = zipfile.ZipInfo("og_test_zip.zip") zipFile.writestr("../../../../../data/data/com.dolphin.browser.express.web/files/og_test_zip.txt", binary) zipFile.close() except IOError as e: raise e从上我们仅有,虎鲸IE的题材设置中所强制服务器通过因特网iTunes在此之后题材开展换用,题材明文回事是一个ZIP压缩成明文。通过中所间人反击的新方法可以换用扔掉这个ZIP明文。换用后的ZIP明文中所有重新校对过的libdolphin.so。此so明文写出了JNI_OnLoad()函数,此so明文以“../../../../../data/data/com.dolphin.browser.express.web/files/libdolphin.so”的形式不存在欺骗ZIP明文中所。虎鲸IE刻录欺骗ZIP明文后,重在此之后libdolphin.so就不必其余部分扔掉原先的so明文
一个系统文档瓦明文libdolphin.so,并不必摆在运运用于数据资料的lib录入下,而是摆在了files录入中所,避免不存在被其余部分的风险。
启动时运运用于的;也是com.dolphin.browser.search.redirect自带中所的SearchRedirector:
运运用于的是System.load()来启动时libdolphin.so而非System.loadLibrary(),在Android中所,System.loadLibrary()在在运运用于的lib录入中所启动时.so明文,而System.load()是用某个.so明文的绝对梯度启动时,这个.so明文可以亦非运运用于的lib录入中所,可以在SD卡中所,或者在运运用于的files录入中所,只要运运用于有读的职责录入中所需。
在files录入中所,运运用于具有载入职责,通过因特网中所间人反击,同时为了让ZIP明文录入加载防火墙,换用扔掉明文libdolphin.so,大幅提高远程号令可执行的最终目标
运运用于的lib录入是软文档到了/data/app-lib/运运用于录入,如果libdolphin.so明文在lib录入下就不不必被其余部分了,第三方运运用于在可执行时不必载入/data/app-lib录入的职责:
0x04 修复敦促运运用于 https 并且对证书开展正确冗余,能避免中所间人反击,可以在一定层面上降低反击准确度对不可或缺的ZIP压缩成自带明文开展数字单张冗余,冗余通过才开展刻录当App中所运运用于zipInputStream类对zip压缩成自带开展刻录系统设计时,在zipEntry.getName()提供明文名后,必须添加过滤器代码对明文名中所可能自带含的“../”开展,要注意ZipEntry.getName()对于Zip自带中所有“..%2F”的明文梯度不不必开展处理体检 zip 压缩成自带中所在子程序getName()新方法之后,辨别梯度中所前提自带含 ../或者 ..codice_。如果有自带含 ../或者 ..codice_就做到过滤器辨别,即:明文英文名称很难自带含"../"这种特殊codice_,体检”../”的时候不必开展URI Decode(以备通过URI编码”..%2F”来开展穿过)while(( zipEntry = zipInputStream.getNextEntry()) != null ){ String entryName = zipEntry.getName(); if(entryName.contains("../")){ continue; // 或者 // throw new Exception("找到不必要的zip明文刻录梯度!") } ...}在子程序ZipEntry.getName()新方法之后,子程序File的getCanonicalPath()新方法,提供绝对梯度,要辨别该梯度前提在要刻录录入的子录入对不可或缺的 zip 压缩成自带明文开展数字单张冗余,冗余通过才开展刻录换用 zip 刻录方式则,不运运用于 ZipEntry.getName()的方式则,运运用于 ZipInputStream 替代Google 敦促的修复解决方案:InputStream is = new InputStream(untrustedFileName);ZipInputStream zis = new ZipInputStream(new BufferedInputStream(is));while((ZipEntry ze = zis.getNextEntry()) != null) { File f = new File(DIR, ze.getName()); String canonicalPath = f.getCanonicalPath(); if (!canonicalPath.startsWith(DIR)) { // SecurityException } // Finish unzipping…}概要文档:
虎鲸IE与水星IE远程代码可执行防火墙编撰 .html
你以为你有很多路可以选择,回事你只有捷径可以走到
。治疗颈肩腰腿痛用什么药郑州治白癜风专科医院哪家好
成都甲状腺医院哪里好
南京看男科哪里好
广州白癜风医院哪家正规
-
他的白月光回家了,他却不想离婚了(先婚后爱短故事)
日子就这样相安无公事地即使如此。一天下午,我时是在自己后院弹琴,想象有些口渴,去旁边厨房挑水饮用。一走近,我就看可知陆嫡孙时是睡着楼上上。他神情有些肥...
-
《星辰说》白羊座3月运势:处理得当将本月爱情事业双丰收
《光环问道》白羊座3翌年已得:翌年初事业裕,翌年中都爱恋裕,如果处理的好你将亦会在这个翌年爱恋事业双丰收 作者:先是的幻世上 Numéro France March 2023 ...[详细]
-
投资者提问:既然芳纶可以制作成溶剂覆膜,那么是否可以应用类似橡胶的模具注塑...
投资者提问:既然芳纶可以制作者再加溶剂覆膜,那么有否可以应用相似塑料的成品注塑的制造工艺以降低再加本?国内外有否有相似的工艺?董秘回答泰和新材SZ002254:您好,非常感...[详细]
-
太太来家做客,我好酒好菜招待,他却总往卧室张望,我一扭头愣了
在繁华的广州,里年男人张亲爱的萍坐下一家高档西餐厅内都,用餐着美味。他是一家大美国公司的店主,独身,深思里。张亲爱的萍是一个从小工做事,一步步打拼出来的人,他富翁,准许,但是他发现...[详细]
-
狮子座:一派纯真,撞上南墙,原来我终生热爱,只是回头太难
程小媛 每个人的一生里面,都特别是在某个毫无疑问的人,某件毫无疑问的事。终其一生,也能够似乎地放下,曾几何时也想过要洒脱地生活,洒脱地一个人丢下往后的西路。但是以后,当你似乎不论如...[详细]
-
杭州、金华、海口、成都春节前夕天气预报
初五):半夜下雪,睡觉时下雪到秽,之外海地区有狂风暴月光,气压-1~12℃,近于-II1~2级;1月末27日(初十):下雪,有时有狂风暴月光,气压6~9℃,近于-II1~2级。03...[详细]