❶ sql注入攻擊有可能產生什麼危害
資料庫信息泄露:數據中存放的用戶的隱私信息的泄露;
網頁篡改:通過操作資料庫對特定網頁進行篡改;
資料庫被惡意操作:資料庫伺服器被攻擊,資料庫的系統管理員賬戶被篡改;
伺服器被遠程式控制制,被安裝後門;
刪除和修改資料庫表信息。
❷ 網站如何防止sql注入攻擊的解決辦法
首先我們來了解下什麼是SQL注入,SQL注入簡單來講就是將一些非法參數插入到網站資料庫中去,執行一些sql命令,比如查詢資料庫的賬號密碼,資料庫的版本,資料庫伺服器的IP等等的一些操作,sql注入是目前網站漏洞中危害最大的一個漏洞,受攻擊的網站佔大多數都是sql注入攻擊。
sql注入攻擊用英語來講Structured Query Language,在網站的編程語言當中是一種比較另類的網站開發語言,我們網站安全行業通常來講sql是用來資料庫查詢的一種網站開發語言,同時也是一種腳本文件的一個文件名,通俗來講sql就是用來對網站的資料庫進行查詢,以及增加,寫入,更新資料庫的一個sql資料庫操作。
關於資料庫我們分為2種資料庫,一種是關系資料庫,非關系資料庫,那麼目前網站使用的都是關系資料庫,關系資料庫分為sql資料庫,microsoft sql server資料庫,ACC資料庫,mysql資料庫,oracle資料庫,DB2資料庫,postgresql資料庫等等的關系資料庫,非關系資料庫分為nosql資料庫,可以存儲很大數據,針對於一些並發較高,存儲較多,雲計算的場景,頻繁讀取寫入的資料庫,像memcachedb,redis,mongodb等等非關系資料庫。
那麼什麼是sql注入呢? 簡單來講就是對網站強行進行插入數據,執行sql惡意語句對網站進行攻擊,對網站進行sql注入嘗試,可以獲取一些私密的信息,像資料庫的版本,管理員的賬號密碼等等。
關於如何防止sql注入攻擊,我們從以下幾點開始入手
首先我們可以了解到sql注入攻擊都是通過拼接的方式,把一些惡意的參數拼接到一起,然後在網站的前端中插入,並執行到伺服器後端到資料庫中去,通常我們在寫PHP網站代碼的時候會將get ID這個參數值獲取到後直接拼接到後端伺服器中去,查詢資料庫,但是如果拼接了一些惡意的非法參數,那麼久可以當做sql語句來執行,如果防止sql注入呢?
為了防止網站被sql注入攻擊,我們應該從一開始寫代碼的時候就應該過濾一些sql注入的非法參數,將查詢的一些sql語句,以及用戶輸入的參數值都以字元串的方式來處理,不論用戶輸入的什麼東西,在sql查詢的時候只是一段字元串,這樣構造的任何惡意參數都會以字元串的方式去查詢資料庫,一直惡意的sql注入攻擊就不會被執行,sql注入語句也就沒有效果了,再一個就是網站里的任何一個可以寫入的地方盡可能的嚴格過濾與限制,漏下一個可以輸入的地方網站就會被攻擊,網站就會被黑,所有做的網站安全就會沒有效果,包括一些get,post,cookie方式的提交都是不可信的,像數據表裡referer user-agent等欄位都是可以偽造,寫入sql注入語句的,像前端時間爆發的ecshop漏洞利用的就是user.php,偽造referer參數進行了sql注入,執行了遠程代碼。
再一個防止sql注入的方法就是開啟PHP的魔術配置,開啟安全配置模式,將safe_mode開啟on.以及關閉全局變數模式,register_globals參數設置為on,magic_quotes_gpc參數開啟,防止sql注入.如果對網站防止sql注入不懂的話,也可以找專業的網站安全公司來做安全,防止sql注入。
❸ 下列哪些選項屬於SQL注入的危害
SQL注入的危害
資料庫信息泄漏:資料庫中存放的用戶的隱私信息的泄露。
網頁篡改:通過操作資料庫對特定網頁進行篡改。
網站被掛馬,傳播惡意軟體:修改資料庫一些欄位的值,嵌入網馬鏈接,進行掛馬攻擊。
資料庫被惡意操作:資料庫伺服器被攻擊,資料庫的系統管理員帳戶被竄改。
伺服器被遠程式控制制,被安裝後門。經由資料庫伺服器提供的操作系統支持,讓黑客得以修改或控制操作系統。
破壞硬碟數據,癱瘓全系統
❹ SQL注入攻擊有哪些主要的特點
1、變種極多
有經驗的攻擊者,也就是黑客會手工調整攻擊的參數,致使攻擊的數據是不可枚舉的,這導致傳統的特徵匹配方法僅能識別到相當少的攻擊。或者是最常規的攻擊,難以做到防範。
2、攻擊簡單
攻擊過程簡單,目前互聯網上流行的眾多SQL注入攻擊工具,攻擊者藉助這些工具可以很快的對目標網站進行攻擊或者是破壞,危害大。
3、危害極大
由於web語言自身的缺陷,以及具有安全編程的開發人員較少,大多數web應用系統均具有被SQL注入攻擊的可能,而攻擊者一旦攻擊成功,就可以對控制整個web應用系統對數據做任何的修改或者是竊取,破壞力達到了極致。
❺ 網站漏洞危害有哪些
SQL注入漏洞的危害不僅體現在資料庫層面,還有可能危及承載資料庫的操作系統;如果SQL注入被用來掛馬,還可能用來傳播惡意軟體等,這些危害包括但不限於:
資料庫信息泄漏:資料庫中存儲的用戶隱私信息泄露。
網頁篡改:通過操作資料庫對特定網頁進行篡改。
網站被掛馬,傳播惡意軟體:修改資料庫一些欄位的值,嵌入網馬鏈接,進行掛馬攻擊。
資料庫被惡意操作:資料庫伺服器被攻擊,資料庫的系統管理員帳戶被竄改。
伺服器被遠程式控制制,被安裝後門:經由資料庫伺服器提供的操作系統支持,讓黑客得以修改或控制操作系統。
破壞硬碟數據,癱瘓全系統。
XSS跨站腳本漏洞的危害包括但不限於:
釣魚欺騙:最典型的就是利用目標網站的反射型跨站腳本漏洞將目標網站重定向到釣魚網站,或者注入釣魚JavaScript以監控目標網站的表單輸入,甚至發起基於DHTML更高級的釣魚攻擊方式。
網站掛馬:跨站後利用IFrame嵌入隱藏的惡意網站或者將被攻擊者定向到惡意網站上,或者彈出惡意網站窗口等方式都可以進行掛馬攻擊。
身份盜用:Cookie是用戶對於特定網站的身份驗證標志,XSS可以盜取用戶的Cookie,從而利用該Cookie獲取用戶對該網站的操作許可權。如果一個網站管理員用戶Cookie被竊取,將會對網站引發巨大的危害。
盜取網站用戶信息:當能夠竊取到用戶Cookie從而獲取到用戶身份時,攻擊者可以獲取到用戶對網站的操作許可權,從而查看用戶隱私信息。
垃圾信息發送:比如在SNS社區中,利用XSS漏洞借用被攻擊者的身份發送大量的垃圾信息給特定的目標群體。
劫持用戶Web行為:一些高級的XSS攻擊甚至可以劫持用戶的Web行為,監視用戶的瀏覽歷史,發送與接收的數據等等。
XSS蠕蟲:XSS 蠕蟲可以用來打廣告、刷流量、掛馬、惡作劇、破壞網上數據、實施DDoS攻擊等。
❻ 常見的漏洞類型有哪些
一、SQL 注入漏洞
SQL 注入攻擊( SQL Injection ),簡稱注入攻擊、SQL 注入,被廣泛用於非法獲取網站控制權, 是發生在應用程序的資料庫層上的安全漏洞。在設計程序,忽略了對輸入字元串中夾帶的SQL 指令的檢查,被資料庫誤認為是正常的SQL 指令而運行,從而使資料庫受到攻擊,可能導致數據被竊取、更改、刪除,以及進一步導致網站被嵌入惡意代碼、被植入後門程序等危害。
通常情況下, SQL 注入的位置包括:
(1)表單提交,主要是POST 請求,也包括GET 請求;
(2)URL 參數提交,主要為GET 請求參數;
(3)Cookie 參數提交;
(4)HTTP 請求頭部的一些可修改的值,比如Referer 、User_Agent 等;
(5)一些邊緣的輸入點,比如.mp3 文件的一些文件信息等。
SQL 注入的危害不僅體現在資料庫層面上, 還有可能危及承載資料庫的操作系統;如果SQL 注入被用來掛馬,還可能用來傳播惡意軟體等,這些危害包括但不局限於:
(1)資料庫信息泄漏:資料庫中存放的用戶的隱私信息的泄露。作為數據的存儲中心,資料庫里往往保存著各類的隱私信息, SQL 注入攻擊能導致這些隱私信息透明於攻擊者。
(2)網頁篡改:通過操作資料庫對特定網頁進行篡改。
(3)網站被掛馬,傳播惡意軟體:修改資料庫一些欄位的值,嵌入網馬鏈接,進行掛馬攻擊。
(4)資料庫被惡意操作:資料庫伺服器被攻擊,資料庫的系統管理員帳戶被篡改。
(5)伺服器被遠程式控制制,被安裝後門。經由資料庫伺服器提供的操作系統支持,讓黑客得以修改或控制操作系統。
(6)破壞硬碟數據,癱瘓全系統。
解決SQL 注入問題的關鍵是對所有可能來自用戶輸入的數據進行嚴格的檢查、對資料庫配置使用最小許可權原則。通常使用的方案有:
(1 )所有的查詢語句都使用資料庫提供的參數化查詢介面,參數化的語句使用參數而不是將用戶輸入變數嵌入到SQL 語句中。當前幾乎所有的資料庫系統都提供了參數化SQL 語句執行介面,使用此介面可以非常有效的防止SQL 注入攻擊。
(2 )對進入資料庫的特殊字元( '"<>&*; 等)進行轉義處理,或編碼轉換。
(3 )確認每種數據的類型,比如數字型的數據就必須是數字,資料庫中的存儲欄位必須對應為int 型。
(4)數據長度應該嚴格規定,能在一定程度上防止比較長的SQL 注入語句無法正確執行。
(5)網站每個數據層的編碼統一,建議全部使用UTF-8 編碼,上下層編碼不一致有可能導致一些過濾模型被繞過。
(6)嚴格限制網站用戶的資料庫的操作許可權,給此用戶提供僅僅能夠滿足其工作的許可權,從而最大限度的減少注入攻擊對資料庫的危害。
(7)避免網站顯示SQL 錯誤信息,比如類型錯誤、欄位不匹配等,防止攻擊者利用這些錯誤信息進行一些判斷。
(8)在網站發布之前建議使用一些專業的SQL 注入檢測工具進行檢測,及時修補這些SQL 注入漏洞。
二、跨站腳本漏洞
跨站腳本攻擊( Cross-site scripting ,通常簡稱為XSS)發生在客戶端,可被用於進行竊取隱私、釣魚欺騙、竊取密碼、傳播惡意代碼等攻擊。XSS 攻擊使用到的技術主要為HTML 和Javascript ,也包括VBScript和ActionScript 等。XSS 攻擊對WEB 伺服器雖無直接危害,但是它藉助網站進行傳播,使網站的使用用戶受到攻擊,導致網站用戶帳號被竊取,從而對網站也產生了較嚴重的危害。
XSS 類型包括:
(1)非持久型跨站: 即反射型跨站腳本漏洞, 是目前最普遍的跨站類型。跨站代碼一般存在於鏈接中,請求這樣的鏈接時,跨站代碼經過服務端反射回來,這類跨站的代碼不存儲到服務端(比如資料庫中)。上面章節所舉的例子就是這類情況。
(2)持久型跨站:這是危害最直接的跨站類型,跨站代碼存儲於服務端(比如資料庫中)。常見情況是某用戶在論壇發貼,如果論壇沒有過濾用戶輸入的Javascript 代碼數據,就會導致其他瀏覽此貼的用戶的瀏覽器會執行發貼人所嵌入的Javascript 代碼。
(3)DOM 跨站(DOM XSS ):是一種發生在客戶端DOM (Document Object Model 文檔對象模型)中的跨站漏洞,很大原因是因為客戶端腳本處理邏輯導致的安全問題。
XSS 的危害包括:
(1)釣魚欺騙:最典型的就是利用目標網站的反射型跨站腳本漏洞將目標網站重定向到釣魚網站,或者注入釣魚JavaScript 以監控目標網站的表單輸入,甚至發起基於DHTML 更高級的釣魚攻擊方式。
(2 )網站掛馬:跨站時利用IFrame 嵌入隱藏的惡意網站或者將被攻擊者定向到惡意網站上,或者彈出惡意網站窗口等方式都可以進行掛馬攻擊。
(3)身份盜用: Cookie 是用戶對於特定網站的身份驗證標志, XSS 可以盜取到用戶的Cookie ,從而利用該Cookie 盜取用戶對該網站的操作許可權。如果一個網站管理員用戶Cookie 被竊取,將會對網站引發巨大的危害。
(4)盜取網站用戶信息:當能夠竊取到用戶Cookie 從而獲取到用戶身份使,攻擊者可以獲取到用戶對網站的操作許可權,從而查看用戶隱私信息。
(5)垃圾信息發送:比如在SNS 社區中,利用XSS 漏洞借用被攻擊者的身份發送大量的垃圾信息給特定的目標群。
(6)劫持用戶Web 行為:一些高級的XSS 攻擊甚至可以劫持用戶的Web 行為,監視用戶的瀏覽歷史,發送與接收的數據等等。
(7)XSS 蠕蟲:XSS 蠕蟲可以用來打廣告、刷流量、掛馬、惡作劇、破壞網上數據、實施DDoS 攻擊等。
常用的防止XSS 技術包括:
(1)與SQL 注入防護的建議一樣,假定所有輸入都是可疑的,必須對所有輸入中的script 、iframe 等字樣進行嚴格的檢查。這里的輸入不僅僅是用戶可以直接交互的輸入介面,也包括HTTP 請求中的Cookie 中的變數, HTTP 請求頭部中的變數等。
(2 )不僅要驗證數據的類型,還要驗證其格式、長度、范圍和內容。
(3)不要僅僅在客戶端做數據的驗證與過濾,關鍵的過濾步驟在服務端進行。
( 4)對輸出的數據也要檢查, 資料庫里的值有可能會在一個大網站的多處都有輸出,即使在輸入做了編碼等操作,在各處的輸出點時也要進行安全檢查。
(5)在發布應用程序之前測試所有已知的威脅。
三、弱口令漏洞
弱口令(weak password) 沒有嚴格和准確的定義,通常認為容易被別人(他們有可能對你很了解)猜測到或被破解工具破解的口令均為弱口令。設置密碼通常遵循以下原則:
(1)不使用空口令或系統預設的口令,這些口令眾所周之,為典型的弱口令。
(2)口令長度不小於8 個字元。
(3)口令不應該為連續的某個字元(例如: AAAAAAAA )或重復某些字元的組合(例如: tzf.tzf. )。
(4)口令應該為以下四類字元的組合,大寫字母(A-Z) 、小寫字母(a-z) 、數字(0-9) 和特殊字元。每類字元至少包含一個。如果某類字元只包含一個,那麼該字元不應為首字元或尾字元。
(5)口令中不應包含本人、父母、子女和配偶的姓名和出生日期、紀念日期、登錄名、E-mail 地址等等與本人有關的信息,以及字典中的單詞。
(6)口令不應該為用數字或符號代替某些字母的單詞。
(7)口令應該易記且可以快速輸入,防止他人從你身後很容易看到你的輸入。
(8)至少90 天內更換一次口令,防止未被發現的入侵者繼續使用該口令。
四、HTTP 報頭追蹤漏洞
HTTP/1.1 (RFC2616 )規范定義了HTTP TRACE 方法,主要是用於客戶端通過向Web 伺服器提交TRACE 請求來進行測試或獲得診斷信息。當Web 伺服器啟用TRACE 時,提交的請求頭會在伺服器響應的內容(Body )中完整的返回,其中HTTP 頭很可能包括Session Token 、Cookies 或其它認證信息。攻擊者可以利用此漏洞來欺騙合法用戶並得到他們的私人信息。該漏洞往往與其它方式配合來進行有效攻擊,由於HTTP TRACE 請求可以通過客戶瀏覽器腳本發起(如XMLHttpRequest ),並可以通過DOM 介面來訪問,因此很容易被攻擊者利用。防禦HTTP 報頭追蹤漏洞的方法通常禁用HTTP TRACE 方法。
五、Struts2 遠程命令執行漏洞
Apache Struts 是一款建立Java web 應用程序的開放源代碼架構。Apache Struts 存在一個輸入過濾錯誤,如果遇到轉換錯誤可被利用注入和執行任意Java 代碼。網站存在遠程代碼執行漏洞的大部分原因是由於網站採用了Apache Struts Xwork 作為網站應用框架,由於該軟體存在遠程代碼執高危漏洞,導致網站面臨安全風險。CNVD 處置過諸多此類漏洞,例如:「 GPS 車載衛星定位系統」網站存在遠程命令執行漏洞(CNVD-2012-13934) ;Aspcms 留言本遠程代碼執行漏洞( CNVD-2012-11590 )等。
修復此類漏洞,只需到Apache 官網升級Apache Struts 到最新版本
六、框架釣魚漏洞(框架注入漏洞)
框架注入攻擊是針對Internet Explorer 5 、Internet Explorer 6 、與Internet Explorer 7 攻擊的一種。這種攻擊導致Internet Explorer 不檢查結果框架的目的網站,因而允許任意代碼像Javascript 或者VBScript 跨框架存取。這種攻擊也發生在代碼透過多框架注入,肇因於腳本並不確認來自多框架的輸入。這種其他形式的框架注入會影響所有的不確認不受信任輸入的各廠商瀏覽器和腳本。如果應用程序不要求不同的框架互相通信,就可以通過完全刪除框架名稱、使用匿名框架防止框架注入。但是,因為應用程序通常都要求框架之間相互通信,因此這種方法並不可行。因此,通常使用命名框架,但在每個會話中使用不同的框架,並且使用無法預測的名稱。一種可行的方法是在每個基本的框架名稱後附加用戶的會話令牌,如main_display 。
七、文件上傳漏洞
文件上傳漏洞通常由於網頁代碼中的文件上傳路徑變數過濾不嚴造成的,如果文件上傳功能實現代碼沒有嚴格限制用戶上傳的文件後綴以及文件類型,攻擊者可通過Web 訪問的目錄上傳任意文件,包括網站後門文件( webshell ),進而遠程式控制制網站伺服器。因此,在開發網站及應用程序過程中,需嚴格限制和校驗上傳的文件,禁止上傳惡意代碼的文件。同時限制相關目錄的執行許可權,防範webshell 攻擊。
八、應用程序測試腳本泄露
由於測試腳本對提交的參數數據缺少充分過濾,遠程攻擊者可以利用洞以WEB 進程許可權在系統上查看任意文件內容。防禦此類漏洞通常需嚴格過濾提交的數據,有效檢測攻擊。
九、私有IP 地址泄露漏洞
IP 地址是網路用戶的重要標示,是攻擊者進行攻擊前需要了解的。獲取的方法較多,攻擊者也會因不同的網路情況採取不同的方法,如:在區域網內使用Ping 指令, Ping 對方在網路中的名稱而獲得IP;在Internet 上使用IP 版的QQ直接顯示。最有效的辦法是截獲並分析對方的網路數據包。攻擊者可以找到並直接通過軟體解析截獲後的數據包的IP 包頭信息,再根據這些信息了解具體的IP。針對最有效的「數據包分析方法」而言,就可以安裝能夠自動去掉發送數據包包頭IP 信息的一些軟體。不過使用這些軟體有些缺點, 譬如:耗費資源嚴重,降低計算機性能;訪問一些論壇或者網站時會受影響;不適合網吧用戶使用等等。現在的個人用戶採用最普及隱藏IP 的方法應該是使用代理,由於使用代理伺服器後,「轉址服務」會對發送出去的數據包有所修改,致使「數據包分析」的方法失效。一些容易泄漏用戶IP 的網路軟體(QQ 、MSN 、IE 等)都支持使用代理方式連接Internet ,特別是QQ 使用「 ezProxy 」等代理軟體連接後, IP 版的QQ 都無法顯示該IP 地址。雖然代理可以有效地隱藏用戶IP,但攻擊者亦可以繞過代理, 查找到對方的真實IP 地址,用戶在何種情況下使用何種方法隱藏IP,也要因情況而論。
十、未加密登錄請求
由於Web 配置不安全, 登陸請求把諸如用戶名和密碼等敏感欄位未加密進行傳輸, 攻擊者可以竊聽網路以劫獲這些敏感信息。建議進行例如SSH 等的加密後再傳輸。
十一、敏感信息泄露漏洞
SQL 注入、XSS、目錄遍歷、弱口令等均可導致敏感信息泄露,攻擊者可以通過漏洞獲得敏感信息。針對不同成因,防禦方式不同。
❼ 針對sql注入攻擊,有哪些防範措施
SQL注入攻擊的危害很大,而且防火牆很難對攻擊行為進行攔截,主要的SQL注入攻擊防範方法,具體有以下幾個方面。
1、分級管理
對用戶進行分級管理,嚴格控制用戶的許可權,對於普通用戶,禁止給予資料庫建立、刪除、修改等相關許可權,只有系統管理員才具有增、刪、改、查的許可權。
2、參數傳值
程序員在書寫SQL語言時,禁止將變數直接寫入到SQL語句,必須通過設置相應的參數來傳遞相關的變數。從而抑制SQL注入。數據輸入不能直接嵌入到查詢語句中。同時要過濾輸入的內容,過濾掉不安全的輸入數據。或者採用參數傳值的方式傳遞輸入變數,這樣可以最大程度防範SQL注入攻擊。
3、基礎過濾與二次過濾
SQL注入攻擊前,入侵者通過修改參數提交and等特殊字元,判斷是否存在漏洞,然後通過select、update等各種字元編寫SQL注入語句。因此防範SQL注入要對用戶輸入進行檢查,確保數據輸入的安全性,在具體檢查輸入或提交的變數時,對於單引號、雙引號、冒號等字元進行轉換或者過濾,從而有效防止SQL注入。
當然危險字元有很多,在獲取用戶輸入提交參數時,首先要進行基礎過濾,然後根據程序的功能及用戶輸入的可能性進行二次過濾,以確保系統的安全性。
4、使用安全參數
SQL資料庫為了有效抑制SQL注入攻擊的影響。在進行SQLServer資料庫設計時設置了專門的SQL安全參數。在程序編寫時應盡量使用安全參數來杜絕注入式攻擊,從而確保系統的安全性。
5、漏洞掃描
為了更有效地防範SQL注入攻擊,作為系統管理除了設置有效的防範措施,更應該及時發現系統存在SQL攻擊安全漏洞。系統管理員可以采購一些SQL漏洞掃描工具,通過專業的掃描工具,可以及時的掃描到系統存在的相應漏洞。
6、多層驗證
現在的網站系統功能越來越龐大復雜。為確保系統的安全,訪問者的數據輸入必須經過嚴格的驗證才能進入系統,驗證沒通過的輸入直接被拒絕訪問資料庫,並且向上層系統發出錯誤提示信息。同時在客戶端訪問程序中驗證訪問者的相關輸入信息,從而更有效的防止簡單的SQL注入。但是如果多層驗證中的下層如果驗證數據通過,那麼繞過客戶端的攻擊者就能夠隨意訪問系統。因此在進行多層驗證時,要每個層次相互配合,只有在客戶端和系統端都進行有效的驗證防護,才能更好地防範SQL注入攻擊。
7、資料庫信息加密
傳統的加解密方法大致分為三種:對稱加密、非對稱加密、不可逆加密。
❽ SQL注入漏洞(盲注)危害大不
有漏洞當然就要去處理,不然有些人可能就會利用漏洞進行獲取網站許可權,做一些不正當的操作,關於程序安全方面可能幫不上你,你可以咨詢下空間商或者程序提供者 到SEO研究中心網站查看回答詳情>>