在此记录一下新手第一次使用docker搭建简易ctf环境。
基础的docker命令也不在多说,在此非常推荐黑马程序员的docker教程,很通俗易懂。
拉镜像
搭建题目自然少不了web服务器环境,这里使用lamp镜像,(L代表Linux,a代表apache,m代表mysql,而p代表php)使用docker search lamp命令,发现有很多种,我们用tutum/lamp。
使用命令docker pull tutum/lamp下载镜像,下载完成后使用docker images查看镜像是否下载完成
看来已经下载好了。
创建容器
使用命令docker run -d -p 2333:80 tutum/lamp,相当于给镜像实例化了。(其中-d表示在后台运行,-p表示映射的端口)
注意自己要使用的端口是否被开放。
看样子是成功了,访问一下。
看样子是成了。
copy源码
在本服务器创建/var/www/html目录,在该目录下编写简单测试代码,编写index.php,
同样的,我们需要再写一个flag.php。
这样源码的编写就完成了,接下来就是将源码copy到容器的/var/www/html目录下,使用命令docker cp /var/www/html/index.php 1e2a37f7d5a5:/var/www/html/,同样的,复制flag文件也是这样的命令。我们可以使用命令docker exec -it 1e2a37f7d5a5 bash进入到容器里。查看一下flag文件和index.php是否存在。
看来copy成功了。
测试
重新访问ip,出现题目源码了。
那就打一下payload,
?aa=%0awe_are_wondefful%23
发现可以成功得出flag。
本次简易的ctf题目搭建就此结束。
之后会根据需求学习docker搭建更复杂的ctf环境。