1. sql注入攻擊有可能產生什麼危害
資料庫信息泄露:數據中存放的用戶的隱私信息的泄露;
網頁篡改:通過操作資料庫對特定網頁進行篡改;
資料庫被惡意操作:資料庫伺服器被攻擊,資料庫的系統管理員賬戶被篡改;
伺服器被遠程式控制制,被安裝後門;
刪除和修改資料庫表信息。
2. 什麼是SQL漏洞
相當大一部分程序員在編寫代碼的時候,沒有對用戶輸入數據的合法性進行判斷,使應用程序存在安全隱患。如這是一個正常的網址http://localhost/lawjia/show.asp?ID=444,將這個網址提交到伺服器後,伺服器將進行類似Select * from 表名 where 欄位="&ID的查詢(ID即客戶端提交的參數,本例是即444),再將查詢結果返回給客戶端,如果這里客戶端故意提交這么一個網址:
http://localhost/lawjia/show.asp?ID=444 and user>0,這時,伺服器運行Select * from 表名 where 欄位=444 and user>0這樣的查詢,當然,這個語句是運行不下去的,肯定出錯,錯誤信息如下:
·錯誤類型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]將 nvarchar 值 'sonybb' 轉換為數據類型為 int 的列時發生語法錯誤。
/lawjia/show.asp, 第 47 行
但是別有用心的人從這個出錯信息中,可以獲得以下信息:該站使用MS_SQL資料庫,用ODBC連接,連接帳號名為:sonybb。所謂SQL注入(SQL Injection),就是利用程序員對用戶輸入數據的合法性檢測不嚴或不檢測的特點,故意從客戶端提交特殊的代碼,從而收集程序及伺服器的信息,從而獲取想得到的資料。通常別有用心者的目標是獲取網站管理員的帳號和密碼。比如當某個人知道網站管理員帳號存在表login中,管理員帳號名為admin,他想知道管理員密碼,這里他從客戶端接著提交這樣一個網址:
http://localhost/lawjia/show.asp?ID=444 and (Select password from login where user_name='admin')>0,返回的出錯信息如下:
·錯誤類型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC SQL Server Driver][SQL Server]將 varchar 值 '!@#*&admin' 轉換為數據類型為 int 的列時發生語法錯誤。
/lawjia/show.asp, 第 47 行
你知道嗎?上面標紅的部分就是管理員帳號admin的密碼!雖然很復雜,讓人看幾遍也記不住的,但它就這樣顯示在你面前了,這時您就可以用這個帳號和密碼接管人家的網站了!這時你可能還會說,如果他不是事先知道管理員帳號存在表login中,而且知道管理員帳號為admin,那他就不可能獲得管理員密碼。你錯了,只要人家願意多花時間嘗試,他將可以獲得資料庫連接帳號許可權內所能獲得的所有信息!具體過程請參看網上的這篇文章:SQL注入漏洞全接觸。
當然這個過程是很煩瑣的而且要花費很多的時間,如果只能以這種手動方式進行SQL注入入侵的話,那麼許多存在SQL注入漏洞的ASP網站會安全很多了,不是漏洞不存在了,而是利用這個漏洞入侵的成本太高了。但是如果利用專門的黑客工具來入侵的話,那情況就大大不同了。手動方式進行SQL注入入侵至少需要半天或一天乃至很多天的時間,而利用專門的工具來入侵就只需要幾分鍾時間了(視網速快慢決定),再利用獲得的管理帳號和密碼,上傳一個從網上下載的ASP後門程序,就輕易獲得整個網站的管理許可權了,甚至整個伺服器的管理許可權。最有名的一種SQL注入入侵工具是NBSI 2.0,現在已經出到2.0版本了,不過,人家正式名稱不叫SQL注入入侵工具,而叫做網站安全漏洞檢測工具。有了這個所謂的檢測工具,使得入侵存在SQL注入漏洞的ASP網站成了小兒科的游戲,那些既不懂ASP又不懂SQL、年紀小小的男性青年常常得以在一天之內入侵十多個ASP網站,他們以此獲得內心的極大滿足。他們似乎也非常講究職業道德,往往並不破壞網站數據和系統,常見的破壞方式大都僅僅是改換掉網站的主頁,留下"善意的警告",如:你的網站存在SQL注入漏洞,請管理員做好防範措施!並聲明"我沒有破壞數據和系統",有的還要借機發布一下他的倡導:"國內網站大家不要入侵,有本事入侵小日本的!",最後,簽上他的鼎鼎大名是必不可少的程序。
如此大的成就多數情況下僅需動動滑鼠就做到了。打開最新版的NBSI 2.0,如圖1所示:輸入地址到A區,注意網址必須是帶傳遞參數的那種,點擊右邊的檢測按鈕,即出來B區信息,顯示當前用戶為sonybb的許可權為PUBLIC,當前庫為lawjia。有點可惜啊,如果是SA許可權的話,就可以跨庫注入了。不過,這個許可權也足夠獲取該網站管理員帳號和密碼了。點C區下的自動猜解按鈕,即出來當前庫lawjia中的各種表,哇,login表中一定是存管理員帳號和密碼的吧?選中它吧,接著點擊D區下的自動猜解按鈕,立即出來login表裡的列名稱,果然是存放用戶名和密碼的啊,太棒了!趕快打上勾,迫不急待的點擊E區下的自動猜解按鈕。激動人心的時刻就要到來啦,只見唰唰地幾下,帳號與密碼全部出來了。剩下的事就是辨別哪一個帳號是管理員了。
3. 常見的漏洞類型有哪些
一、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、目錄遍歷、弱口令等均可導致敏感信息泄露,攻擊者可以通過漏洞獲得敏感信息。針對不同成因,防禦方式不同。
4. 簡單分析什麼是SQL注入漏洞
實例:
正常提交內容張三
SELECT name,id from user WHERE name='張三'
SQL注入提交內容 張三' or '1'='1
SELECT name,id from user WHERE name='張三' or '1'='1'
因為'1'='1' 恆成立 所以會顯示user 表所有內容,如果再返回里加上密碼等 信息就嚴重泄漏了
5. 下列哪些選項屬於SQL注入的危害
SQL注入的危害
資料庫信息泄漏:資料庫中存放的用戶的隱私信息的泄露。
網頁篡改:通過操作資料庫對特定網頁進行篡改。
網站被掛馬,傳播惡意軟體:修改資料庫一些欄位的值,嵌入網馬鏈接,進行掛馬攻擊。
資料庫被惡意操作:資料庫伺服器被攻擊,資料庫的系統管理員帳戶被竄改。
伺服器被遠程式控制制,被安裝後門。經由資料庫伺服器提供的操作系統支持,讓黑客得以修改或控制操作系統。
破壞硬碟數據,癱瘓全系統
6. SQL注入漏洞(盲注)危害大不
有漏洞當然就要去處理,不然有些人可能就會利用漏洞進行獲取網站許可權,做一些不正當的操作,關於程序安全方面可能幫不上你,你可以咨詢下空間商或者程序提供者 到SEO研究中心網站查看回答詳情>>
7. SQL注入式攻擊的危害
資料庫信息泄露:數據中存放的用戶的隱私信息的泄露;
網頁篡改:通過操作資料庫對特定網頁進行篡改;
資料庫被惡意操作:資料庫伺服器被攻擊,資料庫的系統管理員賬戶被篡改;
伺服器被遠程式控制制,被安裝後門;
刪除和修改資料庫表信息。
8. SQL注入攻擊有哪些主要的特點
1、變種極多
有經驗的攻擊者,也就是黑客會手工調整攻擊的參數,致使攻擊的數據是不可枚舉的,這導致傳統的特徵匹配方法僅能識別到相當少的攻擊。或者是最常規的攻擊,難以做到防範。
2、攻擊簡單
攻擊過程簡單,目前互聯網上流行的眾多SQL注入攻擊工具,攻擊者藉助這些工具可以很快的對目標網站進行攻擊或者是破壞,危害大。
3、危害極大
由於web語言自身的缺陷,以及具有安全編程的開發人員較少,大多數web應用系統均具有被SQL注入攻擊的可能,而攻擊者一旦攻擊成功,就可以對控制整個web應用系統對數據做任何的修改或者是竊取,破壞力達到了極致。
9. 信息安全試題 什麼是sql注入漏洞
SQL是操作資料庫數據的結構化查詢語言,網頁的應用數據和後台資料庫中的數據進行交互時會採用SQL。而SQL注入是將Web頁面的原URL、表單域或數據包輸入的參數,修改拼接成SQL語句,傳遞給Web伺服器,進而傳給資料庫伺服器以執行資料庫命令。如Web應用程序的開發人員對用戶所輸入的數據或cookie等內容不進行過濾或驗證(即存在注入點)就直接傳輸給資料庫,就可能導致拼接的SQL被執行,獲取對資料庫的信息以及提權,發生SQL注入攻擊。
SQL注入漏洞有什麼特點?
1、廣泛性:任何一個基於SQL語言的資料庫都可能被攻擊,很多開發人員在編寫Web應用程序時未對從輸入參數、Web表單、Cookie等接受到的值進行規范性驗證和檢測,通常會出現SQL注入漏洞。
2、隱蔽性:SQL注入語句一般都嵌入在普通的HTPP請求中,很難與正常語句區分開,所以當前許多防火牆都無法識別予以警告,而且SQL注入變種極多,攻擊者可以調整攻擊的參數,所以使用傳統的方法防禦SQL注入效果非常不理想。
3、危害大:攻擊者可以通過SQL注入獲取到伺服器的庫名、表名、欄位名,從而獲取到整個伺服器中的數據,對網站用戶的數據安全有極大的威脅。攻擊者也可以通過獲取到的數據,得到後台管理員的密碼,然後對網頁頁面進行惡意篡改。這樣不僅對資料庫信息安全造成嚴重威脅,對整個資料庫系統安全也有很大的影響。
4、操作方便:互聯網上有很多SQL注入工具,簡單易學、攻擊過程簡單,不需要專業的知識也可以自如運用。