在alpine上,从零开始安装DVWA

背景

alpine系统

目前 alpine 系统已经作为 docker 容器的默认安装系统,其最大的特点是安装的体积非常小,镜像的大小最少只有 5M ,这对于在 docker 集群中大规模使用容器的情况下,极大的降低了磁盘占用,并且其还有:

  1. 因体积较小,从而提升了启动速度
    2.因体积小,组件少,从而暴露面降低,最终提升系统的安全

当我们能够熟练的配置该系统之后,可以大大加快 devops 的整体流程,迅速搭建原型系统,提高资源的利用率。

DVWA

DVWA:Damn Vulnerable Web Application

老牌的安全测试靶场,后端使用的是 PHP + MySQL 的组合,可以方便快捷的让安全从业者,对常见的安全漏洞的原理进行学习,并在实践中巩固自己的学习成果。

DVWA的官网在这里

安装alpine系统

首先从 alpine 的官网,根据需要下载指定的alpine安装包,这里选择了 3.8.1 的Extend版本。

之后,可以将下载的iso文件制作成U盘启动器进行安装,这里由于演示使用 VMware Fusion 进行安装演示。

虚拟机的配置为默认配置如下:

image

启动后直接使用 root 账号登录,并输入 setup-alpine ,进入配置界面,这里的操作的目的是将目前运行在内存中的系统,配置完整后安装至实际的硬盘上,如下图所示:

image

图中可根据自己的需要配置,如键盘的布局、主机名、网卡信息、时间服务器组件、root密码、时区等,本文选择时区为Asia/Shanghai,重点是选择安装的实际物理磁盘( sda )以及安装的用途( sys )

image

安装完成后 reboot

安装系统必备组件

安装Bash、Vim

1
apk add bash vim

开启远程root登录的权限以及扩展的包镜像源

方便直接通过远程终端进行操作,打开vim /etc/ssh/sshd_config,在配置文件的末尾添加:

1
PermitRootLogin yes

重启 ssh 服务,service sshd restart

开启community testing edge包仓库

1
vim /etc/apk/repositories

将其中所有对应的库链接注释打开

安装配置 MySQL/MariaDB

安装MariaDB

1
apk add mariadb mariadb-client

配置MariaDB

MariaDB安装后还不能直接使用,需要创建用户等配置工作

设定环境变量,稍后使用

1
2
3
4
export DB_DATA_PATH=/var/lib/mysql
export DB_ROOT_PASS=root_password
export DB_USER=dvwa
export DB_PASS=dvwa_password

启动配置MariaDB

1
2
mysql_install_db --user=mysql --datadir=${DB_DATA_PATH} &&\
chown -R mysql:mysql ${DB_DATA_PATH}

启动 MariaDB 并添加默认启动

1
2
rc-service mariadb start
rc-update add mariadb default

改 root 密码

1
mysqladmin -u root password "${DB_ROOT_PASS}"

创建一个dvwa用户,以及dvwa数据库

建议添加该用户,不建议使用 MariaDB 的 root 账户登录MariaDB

1
2
3
4
5
6
7
8
echo "CREATE DATABASE dvwa;" >> /tmp/sql
echo "GRANT ALL ON *.* TO ${DB_USER}@'127.0.0.1' IDENTIFIED BY '${DB_PASS}' WITH GRANT OPTION;" > /tmp/sql
echo "GRANT ALL ON *.* TO ${DB_USER}@'localhost' IDENTIFIED BY '${DB_PASS}' WITH GRANT OPTION;" >> /tmp/sql
echo "GRANT ALL ON *.* TO ${DB_USER}@'::1' IDENTIFIED BY '${DB_PASS}' WITH GRANT OPTION;" >> /tmp/sql
echo "DELETE FROM mysql.user WHERE User='';" >> /tmp/sql
echo "DROP DATABASE test;" >> /tmp/sql
echo "FLUSH PRIVILEGES;" >> /tmp/sql
cat /tmp/sql | mysql -u root --password="${DB_ROOT_PASS}"

重启主机,验证是否安装完成

1
2
reboot
ps -ef | grep mysql

安装PHP 以及所需要的库组件

1
apk add lighttpd php5-common php5-iconv php5-json php5-gd php5-curl php5-xml php5-pgsql php5-mysql php5-imap php5-cgi fcgi php5-pdo php5-pdo_pgsql  php5-pdo_mysql  php5-soap php5-xmlrpc php5-posix php5-mcrypt php5-gettext php5-ldap php5-ctype php5-dom

安装配置 lighttp

1
vim /etc/lighttpd/lighttpd.conf

取消掉注释include "mod_fastcgi.conf"

1
vim /etc/lighttpd/mod_fastcgi.conf

替换/usr/bin/php-cgi/usr/bin/php-cgi5

打开对应的选项,便于漏洞学习

1
vim /etc/php5/php.ini

找到allow_url_openallow_url_include 均设置为 On

启动Lighttpd

1
rc-service lighttpd start && rc-update add lighttpd default

安装配置 DVWA

创建项目文件夹

1
mkdir -p /usr/share/webapps/

下载DVWA

1
2
cd /usr/share/webapps/
wget https://github.com/RandomStorm/DVWA/archive/v1.9.zip

将DVWA放到指定的web项目目录中

1
2
3
4
unzip v1.9.zip
rm v1.9.zip
chmod -R 777 /usr/share/webapps/
ln -s /usr/share/webapps/DVWA-1.9/ /var/www/localhost/htdocs/dvwa

配置DVWA

1
vim /usr/share/webapps/DVWA-1.9/config/config.inc.php

设置用户名 密码 以及端口号

image

验证安装情况

打开http://IP/dvwa/setup.php
查看 Setup Check 各项应均为绿色

image

点击Create/Reset Database,创建对应的数据库,安装完成

参考

https://wiki.alpinelinux.org/wiki/DamnVulnerable_Web_Application(DVWA))
https://wiki.alpinelinux.org/wiki/MariaDB


版权声明:本文由littleji.com创作并发表,转载请注明作者及出处,欢迎关注公众号:littleji_com
本文遵守CC BY0SA 4.0
if you have any questions, please leave a message behind or give an issue

本文链接为:https://blog.littleji.com/2018/09/25/20180925InstallDVWAOnAlpineFromScratch/