ZIPZIP
当解压操作可以覆盖上一次解压文件就可以造成任意文件上传漏洞
查看upload.php源码
正在上传…重新上传取消
zip.php
构造payload:
先构造一个指向 /var/www/html的软连接(因为html目录下是web环境 为了后续可以getshell)
利用命令(zip --symlinks test.zip ./*)对test文件进行压缩
此时 上传该test.zip 解压出里边的文件也是软连接 /var/www/html目录下 接下来的思路 就是想办法构造一个gethsell文件 让gethsell文件正好解压在/var/www/html 此时就可以getshell。
构造第二个压缩包,我们先创建一个test目录(因为上一个压缩包里边目录就是test),在test目录下写一个shell文件,在压缩创建的test目录 此时压缩包目录架构是:test/cmd.php
当我们上传这个压缩包时 会覆盖上一个test目录 但是 test目录软链接指向/var/www/html 解压的时候会把cmd.php 放在/var/www/html 此时我们达到了getsehll的目的
上传第一个压缩包:
在上传第二个压缩包文件,此时cmd.php 已经在/var/ww/html 目录下 访问
访问cmd.php 执行命令 成功读取到flag