DVWA1.10-Sql Injection

LOW

sql_injection_low
LOW级别没有对输入参数进行任何检查过滤,直接插入sql语句查询,存在很大的注入漏洞。
首先依次使用以下语句可以判断为字符型注入。
输入1
在这里插入图片描述
输入1’ and ‘1’=‘1
在这里插入图片描述
输入1’ and ‘1’=‘2,查询失败,由此可以说明存在字符型注入。
使用union猜解sql查询语句中的字段数 1’ union select 1,2#,使用其他语句如1‘ union select 1#和1’ union select 1,2,3#都报错The used SELECT statements have a different number of columns,说明查询字段只有两个,分别为First name和Surname.,查询语句大致为selec First name ,Surname from xxx where ID="id’; (xxx为表名)
在这里插入图片描述
为获取表名,先查询数据库,为dvwa
在这里插入图片描述
查询到数据库dvwa只有两个表
在这里插入图片描述
获取users表的列名,并查询users表内容
在这里插入图片描述
在这里插入图片描述

MEDIUM

sql_injection_medium
Medium级别使用了mysqli_real_escape_string对参数id进行过滤,转义其中可能含有的\x00,\n,\r,,’,",\x1a ,并且只能通过下拉菜单选择id。但是我们仍可以对传输过程的数据进行篡改。
首先抓包修改参数,报sql语法错误。
在这里插入图片描述
在这里插入图片描述
修改参数为1 or 1=1#,查询成功,说明为数字型注入漏洞。
在这里插入图片描述
同样的,判断查询语句的字段数,使用1 order by 3 报错,说明查询语句只有两个字段。
在这里插入图片描述
在这里插入图片描述
确定字段顺序,修改参数为1 union select 1,2#,说明字段顺序为First name,Surname。sql查询语句为select First name,Surname from xxx where ID=id。接下来确定表名xxx。
在这里插入图片描述
依次使用以下语句爆出数据库名,表名.

1 union select 1,database() #
1 union select 1,group_concat(table_name) from information_schema.tables where table_schema=database()#

爆出表名之后,由于后台对引号进行了转义,所以需要对表名进行编码处理。

1 union select 1,group_concat(column_name) from information_schema.columns where table_name=0x7573657273 #
在这里插入图片描述
查询users表的内容。
在这里插入图片描述
在这里插入图片描述

HIGH

high级别主要存在的是字符型注入漏洞,相比medium添加了limit 1试图限制只输出一个结果。但是同样可以通过注释绕过。
在这里插入图片描述
注入过程与LOW级别的基本一致,直接最后一步修改id参数即可爆破。
在这里插入图片描述

IMPOSSIBLE

IMPOSSIBLE级别使用了Anti-CSRF 的方法防止了csrf攻击,并使用预编译和PDO将sql查询参数和语句分隔开,只有在查询结果为1个时才能正常显示。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值