使用dvwa进行SQL注入的练习
使用dvwa进行SQL注入的练习
SQL注入
所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序使用dvwa进行SQL注入的练习,将(恶意的)SQL命令注入到后台数据库引擎执行的能力,它可以通过在Web表单中输入(恶意)SQL语句得到一个存在安全漏洞的网站上的数据库,而不是按照设计者意图去执行SQL语句。比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.
当应用程序使用输入内容来构造动态SQL语句以访问数据库时,会发生SQL注入攻击。如果代码使用存储过程,而这些存储过程作为包含未筛选的用户输入的字符串来传递,也会发生SQL注入。SQL注入可能导致攻击者使用应用程序登陆在数据库中执行命令。相关的SQL注入可以通过测试工具进行。如果应用程序使用特权过高的帐户连接到数据库,这种问题会变得很严重。在某些表单中,用户输入的内容直接用来构造动态SQL命令,或者作为存储过程的输入参数,这些表单特别容易受到SQL注入的攻击。而许多网站程序在编写时,没有对用户输入的合法性进行判断或者程序中本身的变量处理不当,使应用程序存在安全隐患。这样,用户就可以提交一段数据库查询的代码,根据程序返回的结果,获得一些敏感的信息或者控制整个服务器,于是SQL注入就发生了。
SQL注入常规利用思路:
1、寻找注入点,可以通过web扫描工具实现
2、通过注入点,尝试获得关于连接数据库用户名、数据库名称、连接数据库用户权限、操作系统信息、数据库版本等相关信息。
3、猜解关键数据库表及其重要字段与内容(常见如存放管理员账户的表名、字段名等信息)
4、可以通过获得的用户信息,寻找后台登录。
5、利用后台或了解的进一步信息,上传或向数据库写入一句话木马,以进一步提权,直到拿到服务器权限。
手工注入常规思路:
1.判断是否存在注入使用dvwa进行SQL注入的练习,注入是字符型还是数字型
2.猜解SQL查询语句中的字段数
3.确定显示的字段顺序
4.获取当前数据库
5.获取数据库中的表
6.获取表中的字段名
7.查询到账户的数据
DVWA
DVWA(Damn Web )是一款渗透测试的演练系统,如果需要入门,并且找不到合适的靶机,那推荐从DVWA入手。DVWA其实就是一个php网站sql注入实例,需要事先在自己的电脑上搭好Web服务器(+PHP+MySQL),之后到DVWA的官网()选择下载得到DVWA-.zipsql注入实例,解压之后放到本地php的网站目录(如htdoc)。

Low级别SQL注入攻击的目标程序源代码

常见注入测试的POC

实践进行时1.在环境下搭建Web服务器

(1)为了搭建+PHP+MySQL的Web服务器环境,本实验按照DVWA的推荐,使用XAMPP一站式安装,可以到官方网站下载:
(2)之后安装程序,保持默认设置即可,可以看到下面界面。


(3)打开程序的主控面板,手动点击开启和MySQL服务,这两个分别是Web服务器和数据库服务器,如果不熟悉,自行查找资料了解一下。

(4)服务开启以后,打开一个浏览器,输入127.0.0.1,如果看到以下界面,说明软件和服务安装成功。

2.安装DVWA软件
(1)到DVWA的官网()选择下载得到DVWA-.zip.解压后,大部分文件是PHP和配置文件,在 c:xampp目录下新建一个DVWA文件夹,把刚才解压的所有文件放到该目录下。注意,目录既是网页访问的根目录,如果要访问DVWA,使用网址 即可,如果自己更改目录名和结构,自行更改访问网址。可以先看一下文件。

(2)在DVWA的目录下找到配置文件,按图中提示修改。

(3)用文本编辑器(如记事本)打开刚才改名的.inc.php文件,把数据库的密码改为空(因为XAMPP默认安装的数据库密码为空)

(4)打开页面,进行配置,如果出现红色错误,则对php.ini文件进行修改。



如果浏览器还报错,就重启一下计算机。
(5)如果页面中没有红色提示,说明没有问题,可以点击页面最下方的/reset 的按钮,生成DVMA必须的数据库。


(6)配置完成后,打开,出现下面页面,用户名是admin,密码是



(7)点击DVWA ,选择Low级别。

(8)点击SQL 就可以开始SQL注入攻击实验了

3.实现SQL注入攻击
(1)
简单ID查询的正常功能体验:输入正确的User ID(例如1,2,3…)sql注入实例,点击,将显示ID First name,信息。输入错误的不显示

(2)遍历数据库表,输入:1' or' 1' =' 1,遍历出了数据库中所有内容。

(3)获取数据库名称、账户名、版本及操作系统信息。通过使用user(),(),()三个内置函数得到连接数据库的账户名、数据库名称、数据库版本信息。通过注入1' and 1=2 union user(),() — (注意–后有空格)。得到数据库用户为root@及数据库名dvwa

(4)猜测表名,注入:1' union 1,() from . where =()#得到表名为:,users注:union查询结合了两个查询结果,根据上面的order by语句我们知道查询包含两列,为了能够现实两列查询结果,我们需要用union查询结合我们构造的另外一个.注意在使用union查询的时候需要和主查询的列数相同。

(5)猜列名,注入:1' union 1,() from . where ='users'#得到列:, , , user, , , , , id, ,

(6)猜用户密码,注入:
1' union null,(char(32,58,32),user,) from users #
得到用户信息,例如admin数据,下面的字符串是哈希值
admin

7.使用,对上述MD5值进行破解,还原admin用户密码明文,把还原的密码进行截图记录。

4.完成DVWA中SQL注入攻击通关过程
网上查找DVWA的SQL注入攻击完整通关教程,例如可以参考:
1. 本站所有资源来源于用户上传和网络,如有侵权请联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长处理!
6. 本站不售卖代码,资源标价只是站长收集整理的辛苦费!如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。
7. 站长QQ号码 2205675299
资源库 - 资源分享下载网 » 使用dvwa进行SQL注入的练习
常见问题FAQ
- 关于资源售价和售后服务的说明?
- 代码有没有售后服务和技术支持?
- 有没有搭建服务?
- 链接地址失效了怎么办?
- 关于解压密码

