注:此文章为WEB安全SQL注入这篇文章之前一篇,是WEB第一篇,当时忘发了,补发一下。
WAMP搭建靶场
- W:windows
- A:apache
- M:mysql,mariadb
- P:php
下载phpstudy
https://www.xp.cn/download.html
- phpstudy简介(小皮面板)
是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer
,一次性安装,无须配置即可使用
phpstudy
傻瓜式的一键启动,一键切换环境(nginx+apahce
),一键切换PHP版本(5.1-7.3),无需懂任何代码与手动配置。
为服务器环境提供最优配置的解决方案,支持Web端管理,一键创建网站、FTP
、数据库、SSL;安全管理,计划任务,文件管理,PHP
多版本共存及切换;自带LNMP
与LAMP
安装phpstudy
- 下载完成后为压缩包
phpStudy_64.zip
- 解压后,双击执行
exe
安装程序,进入程序安装界面,选择自定义选项,更改安装目录,选择立即安装,等待安装完成即可,安装完成后自动启动,进入小皮面板
搭建 DVWA 靶场
下载DVWA靶场
https://github.com/digininja/DVWA
https://github.com/digininja/DVWA/archive/master.zip
安装DVWA靶场
解压DVWA
靶场压缩包,到phpstudy
的WWW
目录,重命名为dvwa
启动phpstudy
切换默认WNMP
为WAMP
,点击启动,可以看到apache
、mysql
服务都已成功启动.
访问DVWA靶场
打开浏览器,访问如下链接地址:
http://127.0.0.1/dvwa/
页面内容提示:DVWA系统错误-未找到配置文件。复制
config/config.inc.php.dist文件为
config/config.inc.php`并根据您的环境进行配置。
修改配置文件
找到dvwa
目录下的config
目录,复制config.inc.php.dist
为config.inc.php
用记事本或其他编辑器,打开config.inc.php
配置文件,修改内容如下后保存
$_DVWA = array();
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'root';
$_DVWA[ 'db_password' ] = 'root';
再次访问靶场地址:http://127.0.0.1/dvwa/ ,成功进入setup
安装界面
安装配置DVWA
- 启用
allow_url_include
allow_url_fopen 参数(只影响RFI,不影响LFI)
简介:是否允许将URL(HTTP,HTTPS等)作为文件打开处理
allow_url_include 参数(只影响RFI,不影响LFI)
简介:是否允许 includeI() 和 require() 函数包含URL(HTTP,HTTPS等)作为文件处理
在小皮面板找到设置,配置文件,php.ini
,双击php7.3.4nts
打开php.ini
配置文件,找到并修改allow_url_include
的默认值Off
为On
,重启apache
服务
- 创建数据库
再次访问靶场地址:http://127.0.0.1/dvwa/,点击Create / Reset Database
,无红色标识,表示dvwa
安装成功,稍等几秒钟,自动跳转进入靶场登录界面,输入默认账号admin
密码password
,即可成功登录
搭建 sqli-labs 靶场
项目地址:https://github.com/Audi-1/sqli-labs
- 下载源码
- 下载ZIP
https://github.com/Audi-1/sqli-labs/archive/refs/heads/master.zip
- 将下载的源码,解压到
phpstudy
的web
根目录WWW
下,重命名为sqlilabs
- 进入
sqlilabs/sql-connections
目录下,记事本或其他编辑器打开db-creds.inc
文件,修改为如下内容
<?php
//give your mysql connection username n password
Sdbuser = 'root';
$dbpass = 'root';
$dbname = "security";
Shost = 'localhost';
Sdbname1 = "challenges";
?>
- 访问靶场,点击 Setup/reset Database for labs 初始化数据库
http://127.0.0.1/sqlilabs/
出现如下报错:
Welcome Dhakkan
SETTING UP THE DATABASE SCHEMA AND POPULATING DATA IN TABLES:
Fatal error:Uncaught Error:Call to undefined function mysql_connect(in C:\phpstudy_pro\WWWsqlilabs\sql-connections\setup-db.php:29 Stack trace:#0 (main)thrown in C:\phpstudy_pro\wWW\sqlilabs\sql-connections\setup-db.php on line 29
打开小皮面板,网站,管理,php
版本,更多版本,选择php5.5.45nts
安装,并选择此版本,然后刷新网站页面,如果没有报错,数据库初始化成功,至此,sqli-labs靶场搭建成功
搭建 upload-labs 靶场
项目地址:https://github.com/c0ny1/upload-labs
- 下载源码
https://github.com/c0ny1/upload-labs/archive/refs/heads/master.zip
- 将下载的源码,解压到
phpstudy
的web
根目录WWW
下,重命名为uploadlabs
- 访问靶场
http://127.0.0.1/uploadlabs/
LAMP搭建DVWA靶场
- L:LINUX
- A:apache
- M:mysql,mariadb
- P:php
Docker 搭建 LAMP
LAMP镜像仓库:
https://hub.docker.com/r/mattrayner/lamp
https://hub.docker.com/r/mattrayner/lamp/tags
Docker下载LAMP镜像
这里以llamp:1604-php5-base
为例
sudo docker pull mattrayner/lamp:1604-php5-base
Docker启动LAMP容器
# 创建 /root/dvwa 文件夹
mkdir -p /root/dvwa/app
# 进入 /root/dvwa 文件夹
cd /root/dvwa
# 启动容器
sudo docker run -dit -p "8088:80" -v ${PWD}/app:/app
mattrayner/lamp:1604-php5-base
下载 DVWA 源码压缩包
# 进入app文件夹
cd /root/dvwa/app
# 下载dvwa源码压缩包
wget https://github.com/digininja/DVWA/archive/master.zip
# 解压
unzip master.zip
# 修改文件夹名字为dvwa
mv DVWA-master dvwa
修改 DVWA 配置文件
# 进入配置文件夹
cd /root/dvwa/app/dvwa/config
# 复制并重命名配置文件
cp config.inc.php.dist config.inc.php
# vim 编辑配置文件
vim config.inc.php
修改配置文件内容如下:
$_DVWA = array();
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'root';
$_DVWA[ 'db_password' ] = '';
$_DVWA[ 'db_port'] = '3306';
修改 PHP 配置文件
启用all_url_include
- 进入容器
docker exec -it CONTAINER_ID bash
注意命令中的 CONTAINER_ID 为启动的 LAMP 容器的 ID 值
- 修改容器中PHP配置文件
# 进入配置文件目录
cd /etc/php/5.6/apache2
# vim 编辑php.ini配置文件
vim php.ini
找到并修改 allow_url_include 的默认值 Off 为 On
- 重启容器中的 apache2 服务
service apache2 restart
配置文件夹权限
修改文件夹权限
cd /root/dvwa/app/
chmod -R 777 dvwa/hackable/uploads/
chmod -R 777 dvwa/external/phpids/0.6/lib/IDS/tmp/
chmod -R 777 dvwa/config
在容器的数据库中创建dvwa
数据库:
sudo docker exec CONTAINER_ID mysql -uroot -e "create database dvwa"
注意命令中的CONTAINER_ID
为启动的LAMP
容器的ID
值
DVWA登录默认账号密码:admin / password
docker-compose
vim docker-compose.yml
version: '2'
services:
dvwa:
image: mattrayner/lamp:1604-php5-base
volumes:
- ./dvwa:/app
expose:
- "80"
ports:
- "8089:80"
hostname: dvwa
restart: always
docker-compose up -d
LAMP搭建 sqli-labs
搜索镜像
docker search sqli-labs
拉取镜像
docker pull acgpiano/sqli-labs
启动容器
docker run -dit -p 8081:80 acgpiano/sqli-labs
成功访问,表示搭建成功
LAMP搭建 upload-labs
搜索镜像
docker search upload-labs
拉取镜像
docker pull c0ny1/upload-labs
启动容器
docker run -dit -p 8082:80 c0ny1/upload-labs