問(wèn)題描述:經(jīng)測(cè)試發(fā)現(xiàn),該網(wǎng)站存在查詢頁(yè)面,未對(duì)輸入數(shù)據(jù)進(jìn)行過(guò)濾,導(dǎo)致產(chǎn)生sql注入。
受影響的URL:http://js-hbsb.cn/wzzz/20150915/105617.shtml
受影響參數(shù):k
驗(yàn)證過(guò)程:
請(qǐng)求數(shù)據(jù)包 |
POST?/slist.cshtml?HTTP/1.1 Content-Length:?82 Content-Type:?application/x-www-form-urlencoded X-Requested-With:?XMLHttpRequest Referer:http://js-hbsb.cn/wzzz/20150915/105617.shtml Cookie:ASP.NET_SessionId=wtc4hdfmkdwqratoipuz21ec;VerifyCod |
?
風(fēng)險(xiǎn)程度:【嚴(yán)重】
風(fēng)險(xiǎn)分析:利用該SQL注入漏洞,惡意攻擊者可以獲取數(shù)據(jù)庫(kù)內(nèi)的所有數(shù)據(jù),并且可能獲取數(shù)據(jù)庫(kù)所承載的操作系統(tǒng)更多信息,對(duì)系統(tǒng)威脅非常嚴(yán)重。
?
sql注入的解決方法
SQL注入的主要原因是程序沒(méi)有嚴(yán)格過(guò)濾用戶輸入的數(shù)據(jù),導(dǎo)致非法數(shù)據(jù)侵入系統(tǒng)。
1)?對(duì)用戶輸入的特殊字符進(jìn)行嚴(yán)格過(guò)濾,如’、”、<、>、/、*、;、+、-、&、|、(、)、and、or、select、union。
2)?使用參數(shù)化查詢(PreparedStatement),避免將未經(jīng)過(guò)濾的輸入直接拼接到SQL查詢語(yǔ)句中。
3)?Web應(yīng)用中用于連接數(shù)據(jù)庫(kù)的用戶與數(shù)據(jù)庫(kù)的系統(tǒng)管理員用戶的權(quán)限有嚴(yán)格的區(qū)分(如不能執(zhí)行drop等),并設(shè)置Web應(yīng)用中用于連接數(shù)據(jù)庫(kù)的用戶不允許操作其他數(shù)據(jù)庫(kù)。
4)?設(shè)置Web應(yīng)用中用于連接數(shù)據(jù)庫(kù)的用戶對(duì)Web目錄不允許有寫(xiě)權(quán)限。使用Web應(yīng)用防火墻。