PHP语言编写,持续收集渗透测试和CTF中针对文件上传漏洞的靶场,总共21关,每一关都包含着不同的上传绕过方式。
Linux Debian系统如果没有安装podman容器环境,可以参考这篇文章先安装podman环境,
Linux Debian11使用国内源安装Podman环境
1.podman搜索upload-labs镜像
打开命令终端,输入下面命令:
sudo podman search upload-labs
2.podman拉取upload-labs镜像
sudo podman pull docker.io/c0ny1/upload-labs
3.查看podman拉取到的upload-labs镜像
sudo podman images
4.podman创建upoad-labs容器
运行镜像,将镜像内的80端口映射到本地的1026端口上面
sudo podman run -d --name upload-labs -p 1026:80 docker.io/c0ny1/upload-labs
5.在浏览器中输入http://127.0.0.1:1026/
在上传文件后,发现错误提示:“…/upload文件夹不存在,请手工创建!“
解决方法:需要创建一个upload文件夹,并将此目录下的所有档案与子目录的拥有者都设为www-data,群体的使用者都设为www-data
6.进入运行中的upload-labs容器
我们可以在Linux下终端执行
sudo podman ps
看到正在运行的upload-labs容器,我们复制其容器ID值:3477fd8f4f6,这个值根据自己实际情况替换即可,执行下面命令。
sudo podman exec -it [容器ID] /bin/bash
进入upload-labs容器,/var/www/html 是当前容器内网站的根目录。
执行下面命令,创建upload文件夹
sudo mkdir upload
执行下面命令,将权限变更为www-data,让所有用户都能写
sudo chown www-data:www-data upload
文件详细信息可通过ls -l
查看
到这一步,恭喜你upload-labs靶场环境就搭建成功了!
7.再次在浏览器中输入http://127.0.0.1:1026/
上传文件就正常了
1.退出
执行:sudo podman ps
列出运行中的容器
执行:sudo podman stop [容器ID]
2.开启
执行:sudo podman ps -a
列出所有容器
执行:sudo podman start [容器ID]