前言

使用 docker 搭建靶场很方便,之前有一部分是通过 VMware Workstation 搭建靶场,基本上都是从一个原生的 Centos Base 镜像搭建起来。从没有 apache、mysql、php 的 Centos 到搭建好了的 LAMP;从没有 nginx、mysql、php 的 Centos 到搭建好了的 LNMP。

每次搭建做了很多的重复工作,于是干脆直接将 LAMP 和 LNMP 架构的 Linux 系统封装为虚拟机,用的时候直接用 LAMP 或 LNMP 环境即可。

image-20231129155819648

以上都是线下模拟的靶机。

但是如果放到了线上模拟,VMware Workstation 搭建的靶机自然不能使用了。最好不过的是使用 docker 搭建,然后采用端口映射技术。

但是在通过 docker 搭建的过程中,难免会出现找 LAMP 或者 LNMP 镜像的时间,故而今天做一下整理。

PHP

PHP5.2

PHP 版本 系统版本 Apache 版本 Web 路径 COMMAND
5.2.17 Ubuntu 16.04.5 2.2.22 /var/www/html /init.sh
1
2
3
4
5
# 拉取镜像
docker pull seti/php52:latest

# 运行容器
docker run -d -p 8080:80 --name PHP5.2 seti/php52:latest

PHP 5.6

PHP 版本 系统版本 Apache 版本 Web 路径 COMMAND
5.6.40 Ubuntu 16.04.5 2.4.37 /var/www/app /sbin/entrypoint.sh
1
2
3
4
5
# 拉取镜像
docker pull romeoz/docker-apache-php:5.6

# 运行容器
docker run -d -p 8080:80 --name PHP5.6 romeoz/docker-apache-php:5.6

PHP 7.3

PHP 版本 系统版本 Apache 版本 Web 路径 COMMAND
7.3.10 Ubuntu 18.04.3 2.4.4 /var/www/app /sbin/entrypoint.sh
1
2
3
4
5
# 拉取镜像
docker pull romeoz/docker-apache-php:7.3

# 运行容器
docker run -d -p 8080:80 --name PHP7.3 romeoz/docker-apache-php:7.3

LAMP

PHP 5.6.28 + MariaDB 10.1.19

PHP 版本 MariaDB 版本 系统版本 Apache 版本 Web 路径 COMMAND
5.6.28 10.1.19 Alpine Linux 3.4 2.4.23 /var/www/html /start.sh

MySQL 的用户名和密码信息:

用户名 密码
root
1
2
3
4
5
# 拉取镜像
docker pull janes/alpine-lamp:latest

# 运行容器
docker run -d -p 8080:80 --name LAMP janes/alpine-lamp:latest

PHP 5.5.9 + MySQL 5.5.61

PHP 版本 MySQL 版本 系统版本 Apache 版本 Web 路径 COMMAND
5.5.9 5.5.61 Ubuntu 14.04.5 2.4.7 /var/www/html /start.sh

MySQL 的用户名和密码信息:

用户名 密码
root root
1
2
3
4
5
# 拉取镜像
docker pull medicean/vulapps:base_lamp

# 运行容器
docker run -d -p 8080:80 --name LAMP medicean/vulapps:base_lamp

PHP 7.3.22 + MariaDB 10.4.15

PHP 版本 MariaDB 版本 系统版本 Apache 版本 Web 路径 COMMAND
5.5.9 10.4.15 Alpine Linux 3.11 2.4.46 /var/www/localhost/htdocs /entry.sh

MySQL 的用户名和密码信息:

用户名 密码
root root(构建的时候自己设置的)
1
2
3
4
5
# 拉取镜像
docker pull sqlsec/alpine-lamp

# 运行容器 记住要指定密码
docker run -d -p 8080:80 --name LAMP -e MYSQL_ROOT_PASSWORD=root sqlsec/alpine-lamp

LNMP

PHP 5.6.40 + MariaDB 10.2.26

PHP 版本 MariaDB 版本 系统版本 nginx 版本 Web 路径 SEHLL
5.6.40 10.2.26 Alpine Linux 3.8.2 1.14.2 /var/www/html /bin/sh

MySQL 的用户名和密码信息:

用户名 密码
root root
1
2
3
4
# 拉取镜像
docker pull ctftraining/base_image_nginx_mysql_php_56
# 运行镜像
docker run -d -p 8080:80 --name LNMP ctftraining/base_image_nginx_mysql_php_56

PHP 7.3.22 + MariaDB 10.4.13

PHP 版本 MariaDB 版本 系统版本 nginx 版本 Web 路径 SEHLL
7.3.22 10.4.13 Alpine Linux 3.12.0 1.18.0 /var/www/html /bin/sh

MySQL 的用户名和密码信息:

用户名 密码
root 空密码
1
2
3
4
# 拉取镜像
docker pull ctftraining/base_image_nginx_mysql_php_73
# 运行镜像
docker run -d -p 8083:80 --name LNMP ctftraining/base_image_nginx_mysql_php_73