安全研究人员Harry Sintonen等发现了linux中利用tar解压时存在目录传送绕过漏洞,原始漏洞分析在此处
影响范围
GNU tar 1.14 to 1.29 (包含1.29)
Red Hat、Alpine Linux、Red Star OS等(任何使用GNU tar的linux)
漏洞原因
利用tar指令在解压压缩包时,遇到文件名为..时,会将..及之前的目录结构去掉以使得文件名变得更加安全;并且使得剩下的文件名与解压目录成相对路径,但这同样会导致安全问题。
漏洞测试
下载测试exp,以root权限执行tar指令
在根目录下解压,不指定解压文件
- root@kali:/# tar xvf tar-poc.tar
复制代码可以发现etc/mod/../被删除后,在当前目录(根目录)下的相对地址为etc/shadow,从而得到解压后的绝对地址为/etc/shadow,导致shadow被覆盖了。
在任一目录下解压,不指定解压文件
- root@kali:/home/wps2015# tar xvf tar-poc.tar
复制代码可以看到文件被解压到了当前目录下的etc/shadow
在任意目录下解压,指定解压目录”-C /“
- root@kali:/home/wps2015# tar xvf tar-poc.tar -C /
复制代码可以看到/etc/shadow被覆盖成功
在任意目录下解压,指定解压文件
- root@kali:/home/wps2015# tar xvf tar-poc.tar etc/motd/
复制代码指定解压文件也可以解压成功
总结该漏洞需要满足较多条件,如需要较高权限(root),需要在指定目录下解压文件等。
|