OSCP Zipper Write-up
本文最后更新于 2026年3月12日 下午
一、靶场详情
靶场名称:
Zipper
靶场地址:
OffSec Proving Grounds Practice 实验环境
二、思路总结
突破边界:
上传 php reverse shell –> 网站自动压缩为 zip 文件 –> 文件包含配合 zip 伪协议执行压缩的包内 php reverse shell –> www-data 用户权限 –> 用户旗帜
权限提升:
计划任务 –> /opt/backup.sh –> 7za @ 开头文件配合符号链接,泄漏任意文件内容 –> root 用户密码 –> 管理员旗帜
三、靶场攻击演示
3.1 靶场信息收集
TCP 端口扫描:
1 | |
UDP 端口扫描:未发现有价值信息。
TCP 服务信息搜集:
1 | |
系统为 Linux 环境,开放有 HTTP、SSH 服务。
3.2 渗透测试突破边界
3.2.1 PHP 伪协议配置文件包含进行 RCE
访问靶机 HTTP 80 端口,网站可对上传的文件进行压缩处理,并输出下载链接。


查看网页源码发现 /index.php:file=home 链接,尝试利用该接口读取其余文件。

1 | |


测试读取 index.php、/etc/passwd 网页没有任何回显,去掉 php 后缀时网站提示 500 错误,怀疑代码做了拼接处理,利用 php 伪协议以 base64 格式读取 index 文件。
1 | |

将读取的 base64 解码后得到了 index.php 源码。
1 | |
index.php 可包含客户端输入的 file 文件,并在末尾添加 .php 后缀,所以只允许我们读取服务器存在的 php 文件。网站可将我们上传的 php 文件压缩为 zip 格式,并提供有下载地址,利用 php 的 zip 伪协议可执行压缩包里的文件,尝试上传 php reverse shell,然后利用 zip 伪协议读取服务器压缩后的 reverse shell。
如果第一时间没有想到这个思路,接下里会继续尝试读取 home.php 和 upload.php,读取后分析也没有发现可利用的漏洞,之后可能还会尝试枚举历史的 zip 文件,但枚举的时间会很久,到最后也依然没有任何发现,会陷入一个死胡同,一旦思路错误就会很难突破。而对于 php 的伪协议使用,也需要将每个可利用的协议都尝试一遍,总之需要大量的尝试。
php reverse shell:
1 | |

注意: 测试发现使用一句话木马不能执行。
将 php reverse shell 上传至网站进行压缩处理,使用 php zip 伪协议执行压缩包内的 reverse shell,获取到系统 www-data 用户权限。

1 | |

可以使用绝对路径也可使用相对路径,还需要注意:index.php 在包含文件时在文件末尾追加了.php,所以实际传入参数应去掉.php。
1 | |


升级为交互式 shell。

3.2.2 用户旗帜获取

3.3 提权获取系统管理员权限
3.3.1 7za 符号链接读取任意文件
系统通过计划任务会周期以 root 权限执行/opt/backup.sh 脚本。
1 | |

1 | |

脚本中使用了 7za 将网站 uploads 目录下的 zip 文件批量备份至/opt/backups/backup.zip 文件中,并以/root/secret 文件内容为解压密码,最后将程序执行的日志写入/opt/backups/backup.log 文件中。
经测试,当前用户无法编辑脚本内容,使用 pspy 也无法查看命令执行设置的密码字段。


查看网站 uploads 目录,发现存在/root/secret 的链接文件和以 @ 字符开头的 zip 文件。

查看/opt/backups/backup.log 文件时,发现一些错误信息,将报错字符串当作密码可切换至 root 用户。

1 | |

拓展:
对于靶机的提权方式显得非常模糊,可参考 hacktricks 网站关于 7za 提权的介绍。
1 | |

7za 存在一种特殊机制: 如果传入的参数以 @ 开头,7za 会认为它是一个文件列表,然后将文件中内容当成路径,继续执行下一步操作,如果文件中的内容不是路径,7za 将以报错的方式将文件内容显示出来,这样就造成了任意文件读取。
1 | |


测试读取/etc/shadow 文件时,发现并没有报错,由于 shadow 内容比较特殊,7za 将其当成了文件目录,所以不会报错,进而也不会将内容输出。
3.3.2 管理员旗帜获取

Thanks
如果我的文章对您有帮助或您希望与我更多交流,欢迎点击「关于我」,通过页面中的微信公众号、邮箱或 Discord 与我联系;若您发现文章中存在任何错误或不足之处,也非常欢迎通过以上方式指出,在此一并致以衷心的感谢。 😊🫡
最后,祝您生活愉快!🌞✨