通过路径遍历上传webshell程序

题目

image-20261013153315706

开始打靶

依旧是先上传一张正常的图片去获取到图片存储的路径

image-20261013153850205

接着上传php文件去读取文件,可以看到成功上传

image-20261013154017514

我们访问上传的文件,发现我们的php代码不能被解析了,显示了源代码

image-20261013154103840

multipart/form-data 上传请求里的 filename 字段,服务器常拿这个值决定保存文件名 + 存放路径

我们尝试加上../用来跳出当前目录,将文件上传到上一级目录

image-20261013155640081

这里有一个问题,那就是我们文件虽然看起来是上传成功了,但是我们仔细看会发现我们上传成功的文件保存的路径好像依然还是这个,和我们不加上../一样。所以我们考虑服务器后端有校验,可能有关键字符过滤,这里尝试将../进行url编码,重新上传后成功的上传了

image-20261013160050291

去访问文件上传的路径,成功读取到了内容

image-20261013160113406

最后提交内容成功通关~

image-20261013160146255