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