docker集成lamp—tp5反序列化漏洞

docker集成lamp—tp5反序列化漏洞

一、win 11安装docker

安装之前首先得保证电脑开启了下面两个选项

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gorOGPoN-1682264574827)(img/image-20230422124612526.png)]

docker v20.10.24下载地址:http://docker.p2hp.com/

docker默认安装在C盘,无法在安装时修改安装位置。通过mklink建立软链接的方式,修改安装位置:

#管理员权限下执行,需要在E盘提前新建Docker,且安装docker前建立起软链接
mklink /j "C:\Program Files\Docker" "E:\Docker"

执行完这条命令后再安装docker,会在C:\Program Files\Docker生成链接文件,实际保存在E:\Docker中。

安装完成后,启动docker报错。提示需要更新wsl。以管理员身份运行cmd,wsl --update更新到wsl2版本。

修改镜像保存地址(放在C盘占空间)

默认镜像位置:C:\Users\32897\AppData\Local\Docker\wsl

在这里插入图片描述

在想更换的盘符目录下创建同样的文件夹,我这里是:E:\Dockerdata

然后关闭docker程序以及swl (使用命令:wsl --shutdown)

一定要确保所有wsl应用都停止:wsl --list -v

在这里插入图片描述

导出docker镜像文件

wsl --export docker-desktop-data "E:\Dockerdata\docker-desktop-data.tar"
wsl --export docker-desktop "E:\Dockerdata\docker-desktop.tar"

成功导出

在这里插入图片描述

注销docker-desktop-data、docker-desktop

wsl --unregister docker-desktop-data
wsl --unregister docker-desktop

指定文件夹重新导入

wsl --import docker-desktop-data "E:\Dockerdata\data" "E:\Dockerdata\docker-desktop-data.tar"  --version 2
wsl --import docker-desktop "E:\Dockerdata\distro" "E:\Dockerdata\docker-desktop.tar" --version 2

在这里插入图片描述

看到自定义的文件夹中生成了镜像文件

在这里插入图片描述

重新启动

在这里插入图片描述

导入命令时要注意:–version 2

更改源

"registry-mirrors": [
      "https://registry.docker-cn.com",
      "https://xxxxx.mirror.aliyuncs.com"
  ]
  #第一个为docker中国官方的镜像,第二个为阿里云专属镜像(登录自己的阿里云账号即可:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors)

在这里插入图片描述

注册一个docker账号可以使用其维护的官方仓库:https://hub.docker.com/

本地登录即可使用

二、搭建lnmp平台

1、安装linux系统镜像
  • 搜索Ubuntu镜像

    docker search --filter stars=50 ubuntu
    

在这里插入图片描述

下载官方库中,starts最多的,默认为最新版本

  • 拉取镜像到本地

    docker pull ubuntu
    

    等待一会

在这里插入图片描述

查看一下下载的镜像

docker images

在这里插入图片描述

2、启动容器
  • 加载镜像使其成为一个容器

    #使用容器搭建一个网站,(-d)后台启动,使用(-i)交互模式
    #映射容器80端口到本地8080端口(还有3306端口)以及容器目录到本地目录
    docker run -id -p 8080:80 -p 3309:3306 -v E:\www:/var/www/html --name web-lamp ubuntu 
    
    #也可以直接进入到容器,使用-t选项
    docker run -ti -p 8080:80 -p 3309:3306 -v E:\www:/var/www/html --name web-lamp ubuntu /bin/bash
    
  • 登录到容器

    如果要进入容器,首先得确保已经启动

     #查看所有容器
    docker ps -a  
    
    #启动容器
    docker start 容器名或容器id   
    
    #进入容器shell界面
    docker exec -it 容器名或容器id /bin/bash
    

我这里直接进入到交互式shell界面,exit退出交互模式后,容器就关闭了,需要重新开启在登录

在这里插入图片描述

3、搭建lamp
  • 下载需要的软件

    apt-get update
    apt install -y nginx php-fpm mysql-client mysql-server vim
    

    这里需要选择一下时区亚洲、上海

在这里插入图片描述

  • 配置nginx环境

    打开:/etc/php/7.4/fpm/pool.d/www.conf

    记住这个文件路径:/run/php/php7.4-fpm.sock

在这里插入图片描述

去掉这句注释:listen.allowed_clients = 127.0.0.1

在这里插入图片描述

打开:/etc/nginx/sites-enabled/default

去掉这几行注释,加上index.php,要注意这个文件路径:/run/php/php7.4-fpm.sock

在这里插入图片描述

要注意这个大括号闭合,踩坑了

  • 启动PHP、nginx和mysql服务

    service php7.4-fpm start
    service nginx start
    service mysql start
    

在这里插入图片描述

访问测试一下

nginx搭建成功

在这里插入图片描述

在/var/www/html中新建一个phpinfo.php用来查看phpifo信息

php搭建成功

在这里插入图片描述

  • 安装PHP拓展

    apt install php7.4-mysql php7.4-curl php7.4-json php7.4-mbstring php7.4-xml php7.4-intl
    
    #安装完成后重启
    service php7.4-fpm restart
    

    重新访问一下phpifo,发现拓展已安装

在这里插入图片描述

  • 配置mysql

    配置mysql安全策略:mysql_secure_installation

    具体配置视情况而定

    注意:

    MySQL 5.7.6 及更高版本,并且默认认证插件是 caching_sha2_password,则无法使用 mysql_secure_installation 更改“root”用户密码。

    caching_sha2_password 认证插件要求密码必须包含至少一个数字、一个小写字母、一个大写字母和一个特殊字符,并且长度必须至少为 8 个字符。

    执行这条命令需要输入root用户密码,这里设置一下root用户密码为root,需要先启动mysql

    我这里下载了最新的版本,因此需要手动配置,配置安全策略时就不选更改root用户命令了。

     ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'ROOt@123';
    

在这里插入图片描述

成功配置

4、搭建tp5.0.24环境

由于前面加载镜像的时候,将本地的目录和容器里的目录进行了映射,方便上传源码文件

在本地将thinkphp5.0.24文件放到对应目录即可,本地访问:http://127.0.0.1:8080/Thinkphpv5.0.24/public/?a=1。其中a=1 的1可以替换为base64编码的poc

在这里插入图片描述

为了方便测试,我将poc也放上去:http://127.0.0.1:8080/Thinkphpv5.0.24/public/poc.php

在这里插入图片描述

webshell名为:a.php12ac95f1498ce51d2d96a249c09c1998.php

在这里插入图片描述

三、环境容器打包成镜像

容器打包

docker commit -a="restorejustice" web-lamp restorejustice/thinkphp5.0.24rce

#解释
web-lamp为要打包的容器
restorejustice/thinkphp5.0.24rce为仓库名(一般为个人账户id)/镜像名,默认tag为lastas

在这里插入图片描述

上传到个人仓库,上传了几次成功

4849)]

三、环境容器打包成镜像

容器打包

docker commit -a="restorejustice" web-lamp restorejustice/thinkphp5.0.24rce

#解释
web-lamp为要打包的容器
restorejustice/thinkphp5.0.24rce为仓库名(一般为个人账户id)/镜像名,默认tag为lastas

在这里插入图片描述

上传到个人仓库,上传了几次成功

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值