在安卓系统上搭建DVWA和SQLI靶场
在安卓系统上搭建DVWA和SQLI靶场
lololowe闲置的安卓手机或者平板放着也是放着, 不如拿来做LNMP服务器搭些服务, 比如搭建内网靶场。
安装Termux
自行选择是安装官方原汁原味的Termux还是更适合中国宝宝体质的ZeroTermux。
更换软件源
执行以下命令将Termux内置软件源替换为清华大学镜像源:
1 | sed -i 's@^\(deb.*stable main\)$@#\1\ndeb https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main stable main@' $PREFIX/etc/apt/sources.list |
配置SSH
手机上敲命令太慢了, 推荐在手机上配置SSH服务器然后用电脑连接过去进行操作:
1 | pkg install openssh -y |
在电脑的终端中执行以下命令连接手机:
1 | ssh [用户名]@[IP地址] -p 8022 # 替换为实际用户名和IP |
安装nginx
1 | pkg install nginx -y |
安装php-fpm
DVWA是使用PHP编写的, 而nginx服务器本身并不处理php文件, 它会把php文件的请求转发给php-fpm处理, 然后将处理结果返回给客户端。因此需要再安装php-fpm:
1 | pkg install php-fpm -y |
使用nano编辑$PREFIX/etc/nginx/nginx.conf
文件, 在server
块的location /
块的index
部分添加index.php
, 然后再添加一个location
块:
1 | location ~ \.php$ { |
重启nginx并测试php-fpm是否工作:
1 | nginx -s reload # 重启nginx |
安装MariaDB(MySQL)
当 MariaDB Server 的前身 MySQL 于 2009 年被 Oracle 收购时, MySQL 创始人 Michael “Monty” Widenius 出于对 Oracle 管理权的担忧而fork了该项目, 并将新项目命名为 MariaDB。 MySQL 以他的第一个女儿 My 命名, 而 MariaDB 则以他的第二个女儿 Maria 命名。
1 | pkg install mariadb |
克隆DVWA仓库并进行配置
1 | pkg install git |
编辑DVWA配置文件$PREFIX/share/nginx/html/dvwa/config/config.inc.php
, 修改db_user为root, db_password置空, 类似下面这样:
1 | $_DVWA[ 'db_user' ] = 'root'; |
完成配置后手机浏览器访问http://127.0.0.1:8080/dvwa/setup.php
即可看到DVWA的设置页面, 点击底部的Create/Reset Database
即可配置好数据库并进入DVWA的登录界面, 输入m默认用户名admin和密码password即可登录到DVWA:
默认情况下php的allow_url_include
函数是禁用的, 这会影响到DVWA文件包含漏洞实验的正常进行, 因此需要启用此函数:
1 | echo "allow_url_include = On" >> $PREFIX/lib/php.ini |
修改完成之后需要重启php-fpm:
1 | pgrep php-fpm |
此时再访问http://127.0.0.1:8080/dvwa/setup.php
即可看到PHP function allow_url_include: Enabled
:
内网中的其他设备要访问靶场只需将环回地址改为手机的内网地址即可。
克隆sqli仓库并进行配置
由于原版的sqli-labs的上一次更新提交已是2014年, 其内置的mysql_connect()函数已被php7+版本删除, 这导致了sqli-labs连接不上数据库, 推荐的解决方法是直接使用Sqli_Edited_Version这个修改了连接函数为受支持函数的复刻版:
1 | git clone https://github.com/Rinkish/Sqli_Edited_Version.git $PREFIX/share/nginx/html/sqli |
执行以下命令修改配置文件:
1 | sed -i "/^\$host = 'localhost';/c#\$host = 'localhost';\n\$host = '127.0.0.1';" $PREFIX/share/nginx/html/sqli/sql-connections/db-creds.inc |
此时再用手机浏览器访问http://127.0.0.1:8080/sqli/sql-connections/setup-db.php
即可自动创建好sqli-labs的数据库:
再回到主页http://127.0.0.1:8080/sqli/
即可选关打靶了。
服务自启
要想启动手机的Termux的同时也启动sshd、nginx、mariadb、php-fpm, 需要再执行以下命令:
1 | mkdir ~/log && echo -e "sshd\nnohup nginx > \$HOME/log/nginx.log 2>&1 &\nnohup mysqld > \$HOME/log/mariadb.log 2>&1 &\nnohup php-fpm > \$HOME/log/php-fpm.log 2>&1 &" >> ~/.bashrc |
对于希望手机自启Termux应用, 由于不同定制安卓系统的操作方式皆有所不同, 这里不做解释, 请自行寻找相关设置。