1. 网络不是法外之地,学习网络安全只是为了更好地保护网络安全
2. 文中内容仅为学习交流,涉及到的工具和方法均不能用于破坏网络安全
该笔记仅在CSDN中发表,如转载请大家注明出处。
本文地址:https://blog.csdn.net/elang6962/article/details/104764765
本文环境:
-
PhpStudy=0.4公测版
-
OS:Kali Linux 2019.4
在诸多教程和先辈的建议中,Web安全都是渗透测试和漏洞挖掘等方向的安全入门必修课,其中SQL注入和XSS注入又是Web安全的基础和重点。
任何技术都需要在基础理论学习后进行大量的实践,逐渐把理论转化为自身的技能,并且在实践中不断加深对理论的理解。网络安全更是如此,这一点应该有一部分大学和研究生安全专业的同学有共鸣。
安全专业的实践与其他学科有一个关键的区别就在于,刚刚入门时根本没有可供实践的场所。别说是法律不允许了,即使法律允许,能被三角猫的功夫用于实践的网站或者系统应该也不容易找到。因此和我一般的入门者就需要靶场这种神奇的系统,本文详细的介绍了作者在Kali 2019.4中搭建DVWA和sqli-labs的过程,全文多图预警,详细到几乎每一次点击鼠标都有介绍。
1 PhpStudy安装
PhpStudy是一个网站搭建的集成环境,包括apache、nginx、mysql、php等网站环境都可以一键安装,可以使用phpmyadmin管理数据库,在Linux版本中使用网页进行网站服务器管理。
Linux版本不提供安装包,安装过程最好到官网照着来(目前的域名是https://www.xp.cn/linux.html),或者直接按照如下步骤:
- 终端内执行
wget -O install.sh https://download.xp.cn/install.sh && sudo bash install.sh
,非root用户要加sudo
- 经过些许的等待,安装完成后终端会打印出如下提示:
=================安装完成==================
请用浏览器访问面板http://1XX.XX.XX.XX:9080/0XXXX
系统初始账号:admin
系统初始密码:QJ6XXXX7tZ
官网https://www.xp.cn
如果使用的是云服务器,请至安全组开放9080端口
如果使用ftp,请开放21以及30000-30050端口
如果在虚拟机安装,请将ip换成虚拟机内网ip
===========================================
不要理会提示中的ip,直接在浏览器中输入127.0.0.1:9080/0XXXX,使用初始帐号和密码登录即可。后面的0XXXX叫做授权码,每次登录网页面板都必须输入,但是初始授权码可以修改。
- 修改初始密码和登录授权码。如图,右上角用户名称处,点击选择修改密码可修改面板登录密码;左下角设置中可以修改一个好记的授权码。
- 面板中的其他操作。在设置中不要选择绑定域名,并绑定ip为127.0.0.1,个人认为这样最安全,确保只有自己可以进面板;当然如果在虚拟机中搭建就无所谓啦,域名随便绑,IP要设置成虚拟机的内网IP;在网站-localhost-配置-网站目录中查看网站目录,后期可以把各种靶场文件夹直接丢进这个目录内。
- 使用方法。终端控制
sudo xp
,选择‘1’开启phpstudy,在面板中开启apache。在浏览器输入127.0.0.1,可测试是否安装成功。
- mysql和phpmyadmin安装和使用。在面板-软件管理中找到phpmyadmin,点击“安装”,在安装时会要求选择站点,并安装在该站点的目录中。使用时点击phpmyadmin后面的“管理”会自动打开一个网页,这个网页是用外部IP打开的,只需在地址栏中把IP改成127.0.0.1就可以正常进入。但是,每次登录phpstudy会产生一个token,必须使用它才能打开phpmyadmin,也就是说,一定要在网页面板里打开,且等待到网页错误,才能修改ip进入。mysql同样在软件管理中找到后安装即可。
- 设置数据库root密码。练习中一切为方便服务,在搭建靶场的过程中可能会建立N个不同名称的数据库,且每个靶场都要设置连接数据库的用户名和密码。如果为每个数据库建立一个用户,不仅麻烦,而且在搭建sqli-labs的过程中发现这是不可能实现的。设置root密码,靶场在初始化时会自己建立对应的数据库。如图,在面板-数据库中,点击“root密码”就可以设置。
- 设置网站配置文件为只能本地访问。在面板-网站-localhost-配置-配置文件中,修改为只能本地访问 (windows下在phpstudy-设置-配置文件-vhosts.conf),在
AllowOverride All
下面添加,修改完成重启apache服务。最终结果是
<Directory "/www/admin/localhost_80/wwwroot/">
DirectoryIndex index.php index.html error/index.html
AllowOverride All
Require all denied
Require ip 127.0.0.1
Require host localhost
</Directory>
不清楚此条在Linux中是否有必要,但修改后等于用户本人接管了phpstudy对网站的管理,其他配置项会全部消失。每次进入配置文件时系统会提示是否恢复,选择“恢复”后用户对配置文件的修改会删除。
2 DVWA的搭建
DVWA是Web安全渗透测试的综合平台,难度有low、medium、high、impossible四个等级,除了直接练习,还能结合网页代码进行分析,可谓是新手必备提升信心之佳品。
- 首先到github下载。在github首页直接搜索dvwa
- 选择如图这个进入,直接下载zip包
- dvwa配置。解压zip包,整个dvwa文件夹复制到phpstudy中网站目录下,
/www/admin/localhost_80/wwwroot/dvwa/config/
下的‘config.inc.php.dist’复制一份改名为‘config.inc.php’双击打开,修改数据库用户名和密码后保存关闭:
$_DVWA = array();
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'root'; #此处如新建了用户请填写其用户名
$_DVWA[ 'db_password' ] = 'password'; #此处填写用户名对应的密码
$_DVWA[ 'default_security_level' ] = 'low'; #设置dvwa的默认难度为low,否则是impossible
- dvwa初始化。浏览器输入
127.0.0.1/dvwa
,直接拉到最下面,点击Create/Reset Database
,等待数据库建立后自动进入登录界面,用户名admin,密码password。恭喜!可以开始练习了。
如果考虑到后续会同时使用更多的靶场,最省事的做法是不要修改默认网站的网站目录,将每个靶场的文件夹都复制到这个目录内,在浏览器中使用127.0.0.1/dvwa
这类的地址进入不同的靶场。
3 sqli-labs
- sqli-labs的安装。同样在github中搜索下载,解压后复制到网站目录中。不同的是sqli-labs原版只支持php5,有需要可以下载php7版本的。
- 配置。
/www/admin/localhost_80/wwwroot/sqli-labs/sql-connections
打开db-creds.inc,修改数据库用户名和密码:
$dbuser ='root'; #数据库用户名
$dbpass ='pass'; #密码
$dbname ="security"; #靶场建立的第一个数据库
$host = 'localhost';
$dbname1 = "challenges"; #靶场建立的第二个数据库
从上面的配置可以看到,虽然建立了2个数据库,但只有一个用户名起作用,而在mysql里没办法在不同的数据库中使用相同的用户名,也就是说必须使用数据库的root用户进行连接。
3. 初始化。127.0.0.1/sqli-labs
进入,点击Setup/reset Database for labs
,如果没有报错就算成功了。回到首页,点击SQLi-LABS Page-1(Basic Challenges)
就可以选择题目。
- 教程。在php7版本的文件夹中有一个
sqli-labs-usermanual-cn.pdf
,醒目的cn
字样,诱人的中文教程。
2个靶场的搭建就算完成了,并且搭建好phpstudy的平台后,再搭建这一类靶场都变得非常简单。愿自己和大家都能坚持下去,实现自己的目标!