1. 程式人生 > >滲透測試之正則過濾

滲透測試之正則過濾

lac upd 過濾 根據 target title cti 註入 insert

  1. .使用正則表達式過濾傳入的參數

正則表達式:

“^(.+)\\sand\\s(.+)|(.+)\\sor(.+)\\s$”

判斷是否匹配:

檢測SQL meta-characters的正則表達式 :

/(\%27)|(\’)|(\-\-)|(\%23)|(#)/ix

修正檢測SQL meta-characters的正則表達式 :/((\%3D)|(=))[^\n]*((\%27)|(\’)|(\-\-)|(\%3B)|(:))/i

典型的SQL 註入攻擊的正則表達式 :/\w*((\%27)|(\’))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix

檢測SQL註入,UNION查詢關鍵字的正則表達式 :/((\%27)|(\’))union/ix(\%27)|(\’)

檢測MS SQL Server SQL註入攻擊的正則表達式:

/exec(\s|\+)+(s|x)p\w+/ix

  1. 字符串過濾

比較通用的一個方法:

(||之間的參數可以根據自己程序的需要添加)

"‘|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare|;|or|-|+|,";

  1. jsp中調用該函數檢查是否包函非法字符

防止SQL從URL註入:

"‘|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare|;|or|-|+|,";

//這裏的東西還可以自己添加

String[] inj_stra=inj_str.split("\\|");

for (int i=0 ; i < inj_stra.length ; i++ )

{

if (str.indexOf(inj_stra[i])>=0)

{

return true;

}

}

return false;

}

}

  1. JSP頁面判斷代碼:

使用JavaScript在客戶端進行不安全字符屏蔽

功能介紹:檢查是否含有”‘”,”\\”,”/”

參數說明:要檢查的字符串

返回值:0:是1:不是

函數名是

function check(a)

{

return 1;

fibdn = new Array (”‘” ,”\\”,”/”);

i=fibdn.length;

j=a.length;

for (ii=0; ii<i; ii++)

{ for (jj=0; jj<j; jj++)

{ temp1=a.charAt(jj);

temp2=fibdn[ii];

if (tem’; p1==temp2)

{ return 0; }

}

}

return 1;

}

  

滲透測試之正則過濾