ZipperDown漏洞分析

就在昨天ZipperDown漏洞的新闻刷爆了科技圈,幸运的是我们公司没有用JSPach之类的库(记得当时想用来着,后面苹果发通告禁止使用,我们就放弃了。。。)。下面我们来分析下这个漏洞吧。

1.路径穿越漏洞

首先我们来看下路程穿越漏洞是怎么回事,如下图在当前路径有三个文件夹
截图

1.1 正常访问文件

比如我要访问Applications中的文件我可能在代码中这么写路径

NSString *path = ["~/Applications/" stringByAppendingString:fileName];

上面的fileName我们从url中获取,链接如下

http://xxx.com?fileName=jspatch.js

那么上面获取的实际路径如下

~/Applications/jspatch.js

1.2 利用漏洞访问Library的文件

这个时候就存在漏洞了,我们把链接改成下面这样

http://xxx.com?fileName=../Library/jspatch.js

那么上面获取的实际路径如下

~/Applications/../Library/jspatch.js
~/Library/jspatch.js

这样路径就穿越到Library目录下面了,这个就是简单的利用路径穿越漏洞。

2. 利用JSPatch和ZipArchive实现攻击

明白了上面的路径穿越漏洞,那么我们就可开始攻击了

  1. 找到 ZipArchive 的解压路径 和 JSPatch 的补丁存放路径
  2. 劫持网络请求,返回自己写的的js补丁压缩包,利用路径穿越漏洞修改文件名,让解压后的文件能替换 JSPatch 正常的补丁文件。
  3. 如果本地没有对JSPatch的补丁文件进行校验,那么APP执行的就是我们替换后的js补丁了

3. 总结

要实现攻击需要的条件以及如何防护

  1. APP可以被网络劫持,这个可以通过HTTPS加双向证书认证来防止。
  2. ZipArchive的路径穿越漏洞,这个需要修改下ZipArchive的代码了,做好防范,禁止“../”这种特殊路径。
  3. js补丁包可以被执行,正常情况下我们应该对js文件进行文件校验,看看是否来源合法。

个人感觉这个漏洞影响并没有想象的那么大。

阅读更多
版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/iDivines/article/details/80347638
个人分类: 安全
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭