DVWA平台搭建+SQL注入实验详解

实现1: 实现DVWA平台的搭建,为后续的SQL注入提供练习环境;

实现2:
进行SQL注入的练习,目的是了解因web应用程序对用户输入数据的合法性没有判断或过滤不严,而造成的危害,以便后续更好地掌握对其的防御手段,提高网络安全意识;

一、搭建DVWA平台

1、下载phpstudy安装包

(注意:如果已经安装了数据库,需要注意端口冲突问题)

phpStudy 是一个PHP调试环境的程序集成包。

该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是非常方便、好用的PHP调试环境。该程序不仅包括PHP调试环境,还包括了开发工具、开发手册等。

下载phpstudy安装包并一键安装,记住安装路径,我是安装到C盘的根目录下

1675130300_63d875bc7a0b6f2dae200.png!small?1675130300448

2、下载DVWA安装包

DVWA 全称为Damn Vulnerable Web
Application,意为存在糟糕漏洞的web应用。它是一个基于PHP/MySQL开发的存在糟糕漏洞的web应用,旨在为专业的安全人员提供一个合法的环境,来测试他们的工具和技能。

DVWA的安全特性分为两个部分:一是漏洞的安全级别;二是PHP-IDS入侵检测。

漏洞的安全等级分为低级、中级和高级。 每个级别都会改变
DVWA中所有漏洞的利用难度,初始加载时默认所有漏洞安全等级为高级,以下是每个安全级别及其用途的说明。

  • 高级 - 此级别旨在为用户提供良好编码实践的示例。这个级别应该保护所有漏洞的安全,它用于将易受攻击的源代码与安全源代码进行比较。
  • 中级 -
    此级别主要是为用户提供糟糕的编程实践示例。开发者对程序的安全性进行了一定的保护但是仍有可被利用的漏洞,这为改进用户漏洞利用技巧提供了挑战。
  • 低级 - 此级别是完全易受攻击的,并且没有做任何安全防护。它的作用是展示不良编程实践是如何导致 Web
    应用程序漏洞的,并用作教授或学习漏洞基本利用技术的平台。

在DVWA官网下载DWVA压缩包DVWA-master.zip

3、安装DVWA安装包

1)解压安装包

解压压缩包DVWA-master.zip,把解压后的文件DVWA-master文件,放在phpstudy的安装目录下面–
C:\phpstudy_pro\WWW文件夹下

1675131021_63d8788d98634e7e82847.png!small

2)修改配置文件

找到DVWA-
master文件夹下的config文件夹里面的数据库配置文件“config.inc.php.dist”,改名为“config.inc.php”,再以记事本的方式打开,
修改数据库的用户名和密码、端口号 ,并保存:

$_DVWA[ ‘db_user’ ] = ‘root’;

$_DVWA[ ‘db_password’ ] = ‘root’;

$_DVWA[ ‘db_port’ ] = ‘3306’

1675131340_63d879cc23cca484a7834.png!small?1675131340284

1675131372_63d879ecaaff963a9d323.png!small?16751313726351675131389_63d879fd2068e3a3eb319.png!small?1675131389320

4、启动phpstudy

1675131485_63d87a5d9b759a3d0feba.png!small?1675131485760

5、初次登录DVWA平台

初次登录 http://127.0.0.1/DVWA-master/index.php

1)创建数据库

点击下方的“Create/Reset Database”按钮

1675134028_63d8844c0dd727fbfdc31.png!small?1675134028249

如果没问题的话,会反馈“成功创建”的结果提示

1675134105_63d88499e70fa9114b35b.png!small?1675134105882

2)登录DVWA平台

会自动跳转到DVWA登录界面(或者手动点击login),会跳转到 <http://127.0.0.1/DVWA-
master/login.php>界面(再次打开登录页面也是输入该网址),输入DVWA账号和密码后即可进入DVWA。

登录名:admin

密码:password

1675134317_63d8856d734b84de21afa.png!small?1675134317663

二、SQL注入( SQL Injection)

SQL注入
即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,在管理员不知情的情况下实现非法操作,以此来实现欺骗数据库服务器执行非授权的任意查询,从而进一步得到相应的数据信息。

SQL 是操作数据库数据的结构化查询语言,网页的应用数据和后台数据库中的数据进行交互时会采用SQL。而 SQL注入
是将Web页面的原URL、表单域或数据包输入的参数,修改拼接成SQL语句,传递给Web服务器,进而传给数据库服务器以执行数据库命令。

**1、调整网站安全级别 **

进入DVWA平台后,先在“DVWA Security”中,调整平台安全等级为 “low”-低级
,并确认,此级别是完全易受攻击的,并且没有做任何安全防护。它的作用是展示不良编程实践是如何导致 Web
应用程序漏洞的,并用作教授或学习漏洞基本利用技术的平台。

1675136304_63d88d3047a44a784e38f.png!small?1675136305163

1675159048_63d8e6089254a290736d4.png!small?1675159048271

2、 查看页面的传递方式, set 方法还是 get 方法?

知识点: 注入点类型(页面的传递方式)包括:①get型:使用URL框注入 ②post型:使用输入框注入
③cookie型等等,有多种注入点的类型,所以我们需要进行判断查看一下,它是属于哪种传递方式

输入1,尝试判断该页面的传递方式

 **1**

结果: 查看有返回结果,URL中id=1,说明PHP页面通过了get方法(请求时,
参数附带在url后面,目的为了达到能查询信息的方式,就是get方式)进行参数的传递。我们是可以通过控制参数id的值来返回我们需要的信息。[submit()
方法把表单数据提交到 Web 服务器]

1675136965_63d88fc507825d5bbfacc.png!small?1675136965098

分析:

看看后台中到底执行了什么样的SQL语句呢?点击view-source可以进行源代码的查看

1675137060_63d89024d7dbf62d5870d.png!small?1675137060797

注意:实际执行的SQL语句是文本框中输入的内容会放在id=’’的引号里面,但这只是我们通过看源代码才知道的,实际情况分析的时候,我们是不知道有没有这个引号的哈,我们需要判断,也就是上面的判断

3、判断是否存在注入,注入类型是什么?

<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值