如何解决Cordova IOS上的Zipperdown漏洞问题?

9w11ddsr  于 2022-11-15  发布在  iOS
关注(0)|答案(1)|浏览(155)

我已成功创建Cordova iOS应用程序,然后进入生产阶段,但我的应用程序在上出现安全问题

Zipperdown Vulnerability leading to Remote Code Execution Attack
  • 如何解决此问题?*
kokeuurv

kokeuurv1#

此漏洞主要用于获取对设备上文件系统的访问权限,并注入一些恶意代码以远程执行代码。其工作原理是,
假设您有一个归档文件,此归档文件中的文件将具有非常常见的名称,如cat.jpg、startup.sh,但有时它们也可以具有类似../../abcd.sh的名称。如果我们将其与目标目录连接起来,则会使用这种类型的文件名(让我们考虑您的目标目录/var/www/webside/com.my.app/userFiles/)将导致/var/www/webside/abcd.sh。因为脚本中的..表示以前的目录,如果您将此文件名附加到目录1,它将返回到2个目录,依此类推。
这意味着abcd.sh文件将直接进入/var/www/webside/目录,而不是用户目录。这称为“目录遍历”,利用此攻击,您可以访问您设备的文件系统。如果这将替换您移动的操作系统目录中的某些重要文件,则可能造成严重影响;它可能会危害操作系统或窃取设备中的重要数据。

**解决方案:**要解决此问题,您需要在将每个文件解压缩到目标文件夹时对其进行验证,一种方法是检查以“../..”开头的文件名。您可以忽略并丢弃这些文件(不要将它们写入目标文件夹);通过这样做,你的应用程序将从目录遍历保存。

for url in listOfFileUrlsInsideZip.allObjects {
    let path = (url as! NSURL).path!
    if path.contains("..") {
        continue
    }
}

相关问题