滲透測試之正則過濾
- .使用正則表達式過濾傳入的參數
正則表達式:
“^(.+)\\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
- 字符串過濾
比較通用的一個方法:
(||之間的參數可以根據自己程序的需要添加)
"‘|and|exec|insert|select|delete|update|count|*|%|chr|mid|master|truncate|char|declare|;|or|-|+|,";
- 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;
}
}
- 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; }
滲透測試之正則過濾