本题知识点

  • 任意文件上传配合cookie读取文件

打开页面是一个登入界面

84317-zu36h8m5xz.png

随便输个用户名密码都可以直接登入

99509-hu5t018s624.png

有个upload点击
90859-66g24wkduff.png

这里存在一个任意文件上传但是不解析,发现这里还setcookie了

92810-e8z3j21z1xi.png

解码后大概看出来存储了账号密码+上传的文件路径

29812-c8y5biruqp.png

然后来到show查看一下头像,base64显示

38045-vxbn79tot0s.png

那么这里猜测是通过cookie得到文件路径然后打开,然后转为base64输出,猜测此处路径为

/var/www/html/uploads/4e5b09b2149f7619cca155c8bd6d8ee5/June.jpg

那么我们../跳5层即可到根目录,上传一个文件名为../../../../../etc/passwd的文件然后保存cookie

81807-hj8hbncu1v.png

那么我们要重新下发容器,因为此处的的文件已经被我们上传的文件覆盖了
但是重新下发容器然后直接去查看头像还是会显示不存在,需要随便在上传一张图片然后在替换cookie

37315-z9gvpee30uo.png

访问页面查看源码

28909-mm9gfsac6o.png

解码,成功读取到passwd文件

45228-dwfuji831cb.png

读取flag也是也一样的

84204-kbnyyr871j.png

然后保存cookie

Q/+BAwEBBVVzZXJzAf+CAAEEAQhVc2VybmFtZQEMAAEIUGFzc3dvcmQBDAABCEZpbGVuYW1lAQwAAQRTaWduAQwAAABy/4IBBUp1bm5lAQRKdW5lAT4uL3VwbG9hZHMvNGU1YjA5YjIxNDlmNzYxOWNjYTE1NWM4YmQ2ZDhlZTUvLi4vLi4vLi4vLi4vLi4vZmxhZwEgMzVlYjc2ZmM4YmQyZGEzZWY2MjE5NmU5MjU3MjhlN2MA

重新启动容器-->随便上传一张头像-->查看头像-->替换cookie-->解码得到flag

48555-6qwj8ka4sv6.png

30673-s5qquj945tn.png

最后修改:2022 年 04 月 17 日
如果觉得我的文章对你有用,请随意赞赏