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