SQL注入漏洞的危害不僅體現在數據庫層面,還有可能危及承載數據庫的操作系統;如果SQL注入被用來掛馬,還可能用來傳播惡意軟件等,這些危害包括但不限于:
1、數據庫信息泄漏:數據庫中存儲的用戶隱私信息泄露。
2、網頁篡改:通過操作數據庫對特定網頁進行篡改。
3、網站被掛馬,傳播惡意軟件:修改數據庫一些字段的值,嵌入網馬鏈接,進行掛馬攻擊。
4、數據庫被惡意操作:數據庫服務器被攻擊,數據庫的系統管理員帳戶被竄改。
5、服務器被遠程控制,被安裝后門:經由數據庫服務器提供的操作系統支持,讓黑客得以修改或控制操作系統。
6、破壞硬盤數據,癱瘓全系統。
1、解決SQL注入漏洞的關鍵是對所有來自用戶輸入的數據進行嚴格檢查、對數據庫配置使用最小權限原則
2、所有的查詢語句都使用數據庫提供的參數化查詢接口,參數化的語句使用參數而不是將用戶輸入變量嵌入到SQL語句中。
3、對進入數據庫的特殊字符('"<>&*;等)進行轉義處理,或編碼轉換。
4、確認每種數據的類型,比如數字型的數據就必須是數字,數據庫中的存儲字段必須對應為int型。
5、數據長度應該嚴格規定,能在一定程度上防止比較長的SQL注入語句無法正確執行。
6、網站每個數據層的編碼統一,建議全部使用UTF-8編碼,上下層編碼不一致有可能導致一些過濾模型被繞過。
7、嚴格限制網站用戶的數據庫的操作權限,給此用戶提供僅僅能夠滿足其工作的權限,從而最大限度的減少注入攻擊對數據庫的危害。
8、避免網站顯示SQL錯誤信息,比如類型錯誤、字段不匹配等,防止攻擊者利用這些錯誤信息進行一些判斷。
9、在網站發布之前建議使用一些專業的SQL注入檢測工具進行檢測,及時修補這些SQL注入漏洞。
1、XSS跨站腳本漏洞的危害包括但不限于:
2、釣魚欺騙:最典型的就是利用目標網站的反射型跨站腳本漏洞將目標網站重定向到釣魚網站,或者注入釣魚JavaScript以監控目標網站的表單輸入,甚至發起基于DHTML更高級的釣魚攻擊方式。
3、網站掛馬:跨站后利用IFrame嵌入隱藏的惡意網站或者將被攻擊者定向到惡意網站上,或者彈出惡意網站窗口等方式都可以進行掛馬攻擊。
4、身份盜用:Cookie是用戶對于特定網站的身份驗證標志,XSS可以盜取用戶的Cookie,從而利用該Cookie獲取用戶對該網站的操作權限。如果一個網站管理員用戶Cookie被竊取,將會對網站引發巨大的危害。
5、盜取網站用戶信息:當能夠竊取到用戶Cookie從而獲取到用戶身份時,攻擊者可以獲取到用戶對網站的操作權限,從而查看用戶隱私信息。
6、垃圾信息發送:比如在SNS社區中,利用XSS漏洞借用被攻擊者的身份發送大量的垃圾信息給特定的目標群體。
7、劫持用戶Web行為:一些高級的XSS攻擊甚至可以劫持用戶的Web行為,監視用戶的瀏覽歷史,發送與接收的數據等等。
8、XSS蠕蟲:XSS 蠕蟲可以用來打廣告、刷流量、掛馬、惡作劇、破壞網上數據、實施DDoS攻擊等。
1.假定所有輸入都是可疑的,必須對所有輸入中的script、iframe等字樣進行嚴格的檢查。這里的輸入不僅僅是用戶可以直接交互的輸入接口,也包括HTTP請求中的Cookie中的變量,HTTP請求頭部中的變量等。
2.不要僅僅驗證數據的類型,還要驗證其格式、長度、范圍和內容。
3.不要僅僅在客戶端做數據的驗證與過濾,關鍵的過濾步驟在服務端進行。
4.對輸出的數據也要檢查,數據庫里的值有可能會在一個大網站的多處都有輸出,即使在輸入做了編碼等操作,在各處的輸出點時也要進行安全檢查。
5.在網站發布之前建議測試所有已知的威脅。
CGI漏洞大多分為以下幾種類型:信息泄露、命 令執行和溢出,因此危害的嚴重程度不一。信息泄露會暴露服務器的敏感信息,使攻擊者能夠通過泄露的信息進行進一步入侵;命令執行會對服務器的安全造成直接 的影響,如執行任意系統命令;溢出往往能夠讓攻擊者直接控制目標服務器,危害重大。
1、內容泄露漏洞,會被攻擊者利用導致其它類型的攻擊,危害包括但不局限于:
2、內網ip泄露:可能會使攻擊者滲透進入內網產生更大危害。
4、數據庫信息泄露:讓攻擊者知道數據庫類型,會降低攻擊難度。
5、網站調試信息泄露:可能讓攻擊者知道網站使用的編程語言,使用的框架等,降低攻擊難度。
6、網站目錄結構泄露:攻擊者容易發現敏感文件。
7、絕對路徑泄露:某些攻擊手段依賴網站的絕對路徑,比如用SQL注入寫webshell。
8、電子郵件泄露:郵件泄露可能會被垃圾郵件騷擾,還可能被攻擊者利用社會工程學手段獲取更多信息,擴大危害。
1、敏感文件的泄露可能會導致重要信息的泄露,進而擴大安全威脅,這些危害包括但不局限于:
2、帳號密碼泄漏:可能導致攻擊者直接操作網站后臺或數據庫,進行一些可能有危害的操作。
3、源碼泄露:可能會讓攻擊者從源碼中分析出更多其它的漏洞,如SQL注入,文件上傳,代碼執行等。
4、系統用戶泄露:可能會方便暴力破解系統密碼。
1、配置好服務端語言解析,防止解析失敗而導致源碼泄露;
2、關閉網站錯誤調試機制,防止因為報錯而導致源碼泄露。
3、網站存在備份文件:刪除檢測出的備份文件,或者將這類文件從網站目錄下移走。
4、網站存在包含SVN信息的文件:刪除網站目錄下的SVN信息,不要使用SVN目錄作為網站的目錄。
5、網站存在Resin任意文件讀取漏洞:刪除resin_doc相關目錄與文件。
6、網站存在目錄瀏覽漏洞:關閉Web容器(如IIS/Apache等)的目錄瀏覽功能,比如:
a、IIS中關閉目錄瀏覽功能:在IIS的網站屬性中,勾去“目錄瀏覽”選項,重啟IIS;
b、Apache中關閉目錄瀏覽功能:打開Apache配置文件httpd.conf,查找 “Options Indexes FollowSymLinks”,修改為“ Options -Indexes”(減號表示取消),保存退出,重啟Apache。
7、網站存在PHPINFO文件:刪除檢測出的PHPINFO文件。
8、網站存在服務器環境探針文件:刪除檢測出的探針文件,比如:iprober.php、phpcheck.php、jspcheck.jsp、DotNetInfo.aspx、aspcheck.asp等。
9、網站存在日志信息文件:刪除檢測出的日志信息文件。
10、網站存在PHP示例文件:刪除PHP示例文件。
11、頁面上存在數據庫信息:關閉數據庫的錯誤調試機制,防止因為SQL語句錯誤導致數據庫報錯信息顯示到頁面上。
12、頁面上存在網站程序的調試信息:關閉網站程序的調試機制,這個機制經常被用于網站的測試調試,該機制能顯示出很詳細的網站報錯信息。