㈠ 資料庫安全的防護手段
Xsecure產品系列實現對資料庫的全方位防護 ,需要覆蓋資料庫的事前、事中、事後安全;覆蓋資料庫應用安全、維護安全、使用安全和存儲安全;是最全面的資料庫防泄露產品。 資料庫漏洞掃描系統Xsecure-DBScan ,是一款幫助用戶對當前的資料庫系統進行自動化安全評估的專業軟體,能有效暴露當前資料庫系統的安全問題,提供對資料庫的安全狀況進行持續化監控,幫助用戶保持資料庫的安全健康狀態。
發現外部黑客攻擊漏洞,防止外部攻擊:實現非授權的從外到內的檢測;模擬黑客使用的漏洞發現技術,在沒有授權的情況下,對目標資料庫的安全性作深入的探測分析;收集外部人員可以利用的資料庫漏洞的詳細信息。分析內部不安全配置,防止越權訪問:通過只讀賬戶,實現由內到外的檢測;提供現有數據的漏洞透視圖和資料庫配置安全評估;避免內外部的非授權訪問。
監控資料庫安全狀況,防止資料庫安全狀況惡化:對於資料庫建立安全基線,對資料庫進行定期掃描,對所有安全狀況發生的變化進行報告和分析。 操作系統中的對象一般情況下是文件,而資料庫支持的應用要求更為精細。通常比較完整的資料庫對數據安全性採取以下措施:
(1)將資料庫中需要保護的部分與其他部分相隔。
(2)採用授權規則,如賬戶、口令和許可權控制等訪問控制方法。
(3)對數據進行加密後存儲於資料庫。 由資料庫管理系統提供一套方法,可及時發現故障和修復故障,從而防止數據被破壞。資料庫系統能盡快恢復資料庫系統運行時出現的故障,可能是物理上或是邏輯上的錯誤。比如對系統的誤操作造成的數據錯誤等。
㈡ 求教誰給講講SQL注入攻擊的步驟
第一步:SQL注入點探測。探測SQL注入點是關鍵的第一步,通過適當的分析應用程序,可以判斷什麼地方存在SQL注入點。通常只要帶有輸入提交的動態網頁,並且動態網頁訪問資料庫,就可能存在SQL注入漏洞。如果程序員信息安全意識不強,採用動態構造SQL語句訪問資料庫,並且對用戶輸入未進行有效驗證,則存在SQL注入漏洞的可能性很大。一般通過頁面的報錯信息來確定是否存在SQL注入漏洞。
第二步:收集後台資料庫信息。不同資料庫的注入方法、函數都不盡相同,因此在注入之前,我們先要判斷一下資料庫的類型。判斷資料庫類型的方法有很多,可以輸入特殊字元,如單引號,讓程序返回錯誤信息,我們根據錯誤信息提示進行判斷,還可以使用特定函數來判斷。
第三步:猜解用戶名和密碼。資料庫中的表和欄位命名一般都是有規律的,通過構造特殊的SQL語句在資料庫中依次猜解出表名、欄位名、欄位數、用戶名和密碼。
第四步:查找Web後台管理入口。Web後台管理通常不對普通用戶開放,要找到後台管理的登錄網址,可以利用Web目錄掃描工具快速搜索到可能的登錄地址,然後逐一嘗試,便可以找到後台管理平台的登錄網址。
第五步:入侵和破壞。一般後台管理具有較高許可權和較多的功能,使用前面已破譯的用戶名、密碼成功登錄後台管理平台後,就可以任意進行破壞,比如上傳木馬、篡改網頁、修改和竊取信息等,還可以進一步提權,入侵Web伺服器和資料庫伺服器。
㈢ 怎麼攻擊私服的SQL
五大SQL注入工具
大量的現代企業採用Web應用程序與其客戶無縫地連接到一起,但由於不正確的編碼,造成了許多安全問題。Web應用程序中的漏洞可使黑客獲取對敏感信息(如個人數據、登錄信息等)的直接訪問。
Web應用程序准許訪問者提交數據,並可通過互聯網從資料庫中檢索數據。而資料庫是多數Web應用程序的心臟。資料庫維持著Web應用程序將特定內容交給訪問者的數據,Web應用程序在將信息交給客戶、供應商時,也從資料庫取得數據。
SQL注入攻擊是最為常見的Web應用程序攻擊技術,它會試圖繞過SQL命令。在用戶輸入沒有「凈化」時,如果執行這種輸入便會表現出一種SQL注入漏洞。
檢查SQL注入漏洞主要涉及到兩方面,一是審計用戶的Web應用程序,二是通過使用自動化的SQL注入掃描器執行審記的最佳方法。在此,筆者羅列了一些對Web應用程序開發人員和專業的安全審計人員有價值的SQL注入掃描程序。
一、SQLIer
SQLIer可以找到網站上一個有SQL注入漏洞的URL,並根據有關信息來生成利用SQL注入漏洞,但它不要求用戶的交互。通過這種方法,它可以生成一個UNION SELECT查詢,進而可以強力攻擊資料庫口令。這個程序在利用漏洞時並不使用引號,這意味著它可適應多種網站。
SQLIer通過「true/false」SQL注入漏洞強力口令。藉助於「true/false」 SQL注入漏洞強力口令,用戶是無法從資料庫查詢數據的,只能查詢一個可返回「true」、「false」值的語句。
據統計,一個八個字元的口令(包括十進制ASCII代碼的任何字元)僅需要大約1分鍾即可破解。
其使用語法如下,sqlier [選項] [URL]
其選項如下:
-c :[主機] 清除主機的漏洞利用信息
-s :[秒]在網頁請求之間等待的秒數
-u:[用戶名]從資料庫中強力攻擊的用戶名,用逗號隔開。
-w:[選項]將〔選項〕交由wget
此外,此程序還支持猜測欄位名,有如下幾種選擇:
--table-names [表格名稱]:可進行猜測的表格名稱,用逗號隔開。
--user-fields〔用戶欄位〕:可進行猜測的用戶名欄位名稱,用逗號隔開。
--pass-fields [口令欄位]:可進行猜測的口令欄位名稱,用逗號隔開。
下面說一下其基本用法:
例如,假設在下面的URL中有一個SQL注入漏洞:
http://example.com/sqlihole.php?id=1
我們運行下面這個命令:
sqlier -s 10 http://example.com/sqlihole.php?id=1從資料庫中得到足夠的信息,以利用其口令,其中的數字「10」表示要在每次查詢之間等待10秒鍾。
如果表格、用戶名欄位、口令欄位名猜測得正確,那麼漏洞利用程序會把用戶名交付查詢,准備從資料庫中強力攻擊口令。
sqlier -s 10 example.com -u BCable,administrator,root,user4
然而,如果內建的欄位/表格名稱沒有猜中正確的欄位名,用戶就可以執行:
sqlier -s 10 example.com --table-names [table_names] --user-fields [user_fields] --pass-fields [pass_fields]
除非知道了正確的表格名、用戶名欄位、口令欄位名,SQLIer就無法從資料庫中強力攻擊口令。
二、SQLMap:
這是一個自動的「盲目」SQL注入工具,它用python開發,它能執行一個動態的資料庫管理系統指紋識別,可以完整地窮舉遠程資料庫。其目標是實施一個完整的功能性資料庫管理系統工具,它能夠利用Web應用程序程序設置的全部缺陷,這些安全缺陷可以導致SQL注入漏洞。
在SQLMap檢測到目標系統上的一個或多個SQL注入漏洞之後,用戶就可以從多種選項中選擇,進而執行全面的後端資料庫管理系統指紋識別,檢索資料庫管理系統會話用戶和資料庫,窮舉用戶、口令哈希、資料庫,運行其自身的SQL SELECT語句,讀取文件系統上的特定文件等。
此軟體完全支持MySQL、 Oracle、PostgreSQL、Microsoft SQL Server等後端資料庫管理系統。此外,它還識別微軟的Access資料庫,以及DB2、Informix、 Sybase 、 Interbase等。
其使用方法如下:
sqlmap.py [選項] {-u | -g | -c <配置文件>}
其中,-u URL指明目標URL
-g google dork 將google dork結果處理為目標url
三、SQLID:
此工具是一個SQL注入漏洞挖掘器,是一個命令行實用程序,它能夠查找SQL注入漏洞和網站中的常見錯誤。它可以執行以下幾種操作:查找網頁中的SQL注入漏洞,測試提交的表單,查找SQL注入漏洞的可能性。它還支持HTTP、HTTPS、基本身份驗證等。
其用法如下:
Sqid.rb [選項]
其選項有以下幾種:
-m,--mode MODE,它指明以某種模式進行操作,其中MODE有以下幾種情況:g,google:以google搜索模式操作;u,url檢查這個url;p,page,它主要檢查單一的網頁;c,crawl,檢查站點。
其中,google搜索模式選項有以下幾種情況,-q,--quary 查詢,QUERY執行google搜索;-s,--start START,對所需要的首個結果的零索引;-r,--results RESULTS,在此指明所需要的結果數量,默認值為20。
四、SQL Power Injector
SQL Power Injector可幫助滲透測試人員找到並利用網頁上的漏洞。目前,它支持SQL Server、Oracle、MYSQL、Sybase/Adaptive Sever和DB2等資料庫,但在使用inline注入時,還可藉助現有的資料庫管理系統來使用此軟體。
其自動化的工作模式以兩種方式進行,一是比較期望的結果,二是根據時間延遲。
五、SQLNinja:
Sqlninja可以利用以SQL Server為後端數據支持的應用程序的漏洞,其主要目標是提供對有漏洞的資料庫伺服器的遠程訪問。Sqlninja的行為受到配置文件的控制,它告訴了Sqlninja攻擊的目標和方式,還有一些命令行選項。比如,有如下一些命令選項:
-m<攻擊模式>,其攻擊模式有測試(test)、指紋識別(fingerprint)、強力攻擊(bruteforce)等;
其它的命令選項,-v : 指明進行詳細輸出;-f<配置文件>:指明一個使用的配置文件。-w<單詞列表>指明以強力攻擊模式使用的單詞列表。
本篇文章來源於 黑客基地-全球最大的中文黑客站 原文鏈接:http://www.hackbase.com/tech/2008-09-11/41659.html
㈣ 什麼是撞庫攻擊以及如何防範撞庫攻擊
撞庫是黑客通過收集互聯網已泄露的用戶和密碼信息,生成對應的字典表,嘗試批量登陸其他網站後,得到一系列可以登錄的用戶。很多用戶在不同網站使用的是相同的帳號密碼,因此黑客可以通過獲取用戶在A網站的賬戶從而嘗試登錄B網址,這就可以理解為撞庫攻擊。
撞庫可以通過資料庫安全防護技術解決,資料庫安全技術主要包括:資料庫漏掃、資料庫加密、資料庫防火牆、數據脫敏、資料庫安全審計系統。
(4)資料庫攻擊技巧擴展閱讀:
著名案例:
以京東之前的撞庫舉例,首先京東的資料庫並沒有泄漏。黑客只不過通過「撞庫」的手法,「湊巧」獲取到了一些京東用戶的數據(用戶名密碼)。
而這樣的手法,幾乎可以對付任何網站登錄系統,用戶在不同網站登錄時使用相同的用戶名和密碼,就相當於給自己配了一把「萬能鑰匙」,一旦丟失,後果可想而知。所以說,防止撞庫,是一場需要用戶一同參與的持久戰。
2014年12月25日,12306網站用戶信息在互聯網上瘋傳。對此,12306官方網站稱,網上泄露的用戶信息系經其他網站或渠道流出。據悉,此次泄露的用戶數據不少於131,653條。該批數據基本確認為黑客通過「撞庫攻擊」所獲得。
2018年6月5日報道,前不久,浙江省杭州市餘杭區人民檢察院對譚某某非法獲取計算機信息數據,葉某某、張某某提供侵入計算機信息系統數據案提起公訴。
2018年5月21日,餘杭區人民法院對此案作出判決,被告人譚某某因犯非法獲取計算機信息系統數據罪,被判處有期徒刑三年,緩刑四年,並處罰金人民幣四萬元;被告人葉某某因犯提供入侵計算機信息系統程序罪,被判處有期徒刑三年,緩刑四年,並處罰金人民幣四萬元;
被告人張某某因犯提供侵入計算機信息系統程序罪,被判處有期徒刑三年,緩刑三年,並處罰金人民幣三萬元。據悉,這是全國范圍內針對撞庫打碼案件的首次判例。法院完全採納檢察院的起訴意見。
㈤ sql注入攻擊方法有哪些
所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域或頁面請求的查詢字元串,欺騙伺服器執行惡意的SQL命令。在某些表單中,用戶輸入的內容直接用來構造(或者影響)動態SQL命令,或作為存儲過程的輸入參數,這類表單特別容易受到SQL注入式攻擊。常見的SQL注入式攻擊過程類如:
⑴ 某個ASP.NET Web應用有一個登錄頁面,這個登錄頁面控制著用戶是否有權訪問應用,它要求用戶輸入一個名稱和密碼。
⑵ 登錄頁面中輸入的內容將直接用來構造動態的SQL命令,或者直接用作存儲過程的參數。
㈥ 防範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、資料庫信息加密傳統的加解密方法大致分為三種:對稱加密、非對稱加密、不可逆加密。㈦ 常用的資料庫安全技術有哪些
資料庫的安全性是指保護資料庫以防止不合法的使用所造成的數據泄露、更改或破壞。
安全性問題不是資料庫系統所獨有的,所有計算機系統都有這個問題。只是在資料庫系統中大量數據集中存放,而且為許多最終用戶直接共享,從而使安全性問題更為突出。 系統安全保護措施是否有效是資料庫系統的主要指標之一。 資料庫的安全性和計算機系統的安全性,包括操作系統、網路系統的安全性是緊密聯系、相互支持的。
實現資料庫安全性控制的常用方法和技術有:
(1)用戶標識和鑒別:該方法由系統提供一定的方式讓用戶標識自己咱勺名字或身份。每次用戶要求進入系統時,由系統進行核對,通過鑒定後才提供系統的使用權。
(2)存取控制:通過用戶許可權定義和合法權檢查確保只有合法許可權的用戶訪問資料庫,所有未被授權的人員無法存取數據。例如C2級中的自主存取控制(I)AC),Bl級中的強制存取控制(M.AC)。
(3)視圖機制:為不同的用戶定義視圖,通過視圖機制把要保密的數據對無權存取的用戶隱藏起來,從而自動地對數據提供一定程度的安全保護。
(4)審計:建立審計日誌,把用戶對資料庫的所有操作自動記錄下來放人審計日誌中,DBA可以利用審計跟蹤的信息,重現導致資料庫現有狀況的一系列事件,找出非法存取數據的人、時間和內容等。
(5)數據加密:對存儲和傳輸的數據進行加密處理,從而使得不知道解密演算法的人無法獲知數據的內容。
㈧ ASP+ACCESS做的網站總讓黑客攻擊,有什麼辦法
其實你被攻擊主要原因有以下幾個方面:
1、你的資料庫名和表名起得太普偏,SQL注入軟體一般是有一個詞條庫的,來搜索和匹配你的資料庫。
解決方案:修改資料庫名和表名為比較復雜和難猜的名字,這樣就不容易被攻擊。
2、資料庫存在的目錄和位置可能比較容易被猜中,
解決方案:可能把資料庫放在相對比較難猜的文件夾下面,可能放到兩層以下的文件夾,文件夾名復雜一點。
3、你的網站可能是用網上的公共代碼,所以代碼空易被人知道。
解決方案:如果修改上術兩個可解決問題,就不用了,如果不成功,哪建議你自己分析一下代碼、資料庫連接源,看看有沒有被嵌入惡決代碼。
㈨ 資料庫總是被攻擊,怎樣解決
網站資料庫被攻擊,一般是網站存在漏洞,像SQL注入漏洞,網站漏洞的修補與木馬後門的清除,需要很多專業的知識,也不僅僅是知識,還需要大量的經驗積累,所以從做網站到維護網站,維護資料庫,盡可能找專業的網站安全公司來解決問題,國內也就Sinesafe和綠盟、啟明星辰等安全公司比較專業,可以找他們解決防止資料庫被攻擊的問題。
㈩ SQL注入攻擊與防範
關於SQL注入攻擊與防範
隨著網路的普及,關系資料庫的廣泛應用,網路安全越來越重要。下面是我為大家搜索整理了關於SQL注入攻擊與防範,歡迎參考閱讀,希望對大家有所幫助。想了解更多相關信息請持續關注我們應屆畢業生培訓網!
一、 SQL注入攻擊
簡言之,SQL注入是應用程序開發人員未預期地把SQL代碼傳入到應用程序的過程。它由於應用程序的糟糕設計而成為可能,並且只有那些直接使用用戶提供的值構建SQL語句的應用程序才會受影響。
例如:用戶輸入客戶ID後,GridView顯示客戶的全部行記錄。在一個更加真實的案例中,用戶還要輸入密碼之類的驗證信息,或者根據前面的登錄頁面得到用戶ID,可能還會有一些用戶輸入關鍵信息的文本框,如訂單的日期范圍或產品名稱。問題在於命令是如何被執行的。在這個示例中,SQL語句通過字元串構造技術動態創建。文本框txtID的值被直接復制到字元串中。下面是代碼:
在這個示例中,攻擊者可以篡改SQL語句。通常,攻擊的第一個目標是得到錯誤信息。如果錯誤沒有被恰當處理,底層的信息就會暴露給攻擊者。這些信息可用於進一步攻擊。
例如,想像一下在文本一下在文本框中輸入下面的字元串會發生什麼?
ALFKI'OR '1'='1
再看看因此生成的完整SQL語句:
這條語句將返回所有的訂單記錄,即便那些訂單不是由ALFDI創建,因為對每一行而言而有信1=1總是true。這樣產生的後果是沒有顯示當前用戶特定信息,卻向攻擊者顯示了全部資料,如果屏幕上顯示的是敏感信息,如社會保險號,生日或信用卡資料,就會帶來嚴重的問題。事實上,這些簡單的SQL注入往往是困擾那些大型電子商務公司的麻煩。一般而言,攻擊點不在於文本框而在於查詢字元串(可被用於向資料庫傳送值,如列表頁向詳細信息頁面傳送唯一標識符)。
還可以進行更復雜的攻擊。例如,攻擊者可以使用兩個連接號(--)注釋掉SQL語句的剩餘部分。這樣的攻擊只限於SQL Server,不過對於其他類型的資料庫也有等效的辦法,如MySql使用(#)號,Oracle使用(;)號。另外攻擊者還可以執行含有任意SQL語句的批處理命令。對於SQL Server提供程序,攻擊者只需在新命令前加上分號(;)。攻擊者可以採用這樣的方式刪除其他表的內容,甚至調用SQL Server的系統存儲過程xp_cmdshell在命令執行任意的程序。
下面是攻擊者在文本框中輸入的,它的攻擊目標是刪除Customers表的全部行。
LUNCHUN』;DELETE*FROM Customers--
二、防範
如何預防SQL注入攻擊呢?需要記住幾點。首先,使用TextBox.MaxLength屬性防止用戶輸入過長的字元是一個好辦法。因為它們不夠長,也就減少了貼入大量腳本的可能性。其次,要使用ASP.NET驗證控制項鎖定錯誤的數據(如文本、空格、數值中的特殊字元)。另外,要限制錯誤信息給出的提示。捕獲到資料庫異常時,只顯示一些通用的信息(如「數據源錯誤」)而不是顯示Exception.Message屬性中的信息,它可能暴露了系統攻擊點。
更為重要的是,一定要小心去除特殊字元。比如,可以將單引號替換為兩個單引號,這樣它們就不會和SQL語句的分隔符混淆:
string ID=txtID.Text().Replace(「』」,」』』」);
當然,如果文本確實需要包含單引號,這樣做就引入了其他麻煩。另外,某些SQL注入攻擊還是可行的。替換單引號可以防止用戶提前結束一個字元串,然而,如果動態構建含有數值的SQL語句,SQL注入攻擊又有發揮的空間了。這個漏洞常被(這是很危險的)忽視。更好的解決辦法是使用參數化的命令或使用存儲過程執行轉義以防止SQL注入攻擊。
另一個好建議是限制用於訪問資料庫的賬號的許可權。這樣該賬號將沒有許可權訪問其他資料庫或執行擴展的存儲過程。不過這樣並不能解決SQL腳本注入的問題,因為用於連接資料庫的進程幾乎總是需要比任意單個用戶更大的許可權。通過限制許可權,可以預防刪除表的攻擊,但不能阻止攻擊者偷看別人的.信息
三、POST注入攻擊
精明的用戶可能會知道還有另外一個Web控制項攻擊的潛在途徑。雖然參數化的命令防止了SQL注入攻擊,但它們不能阻止攻擊者向回發到伺服器的數據添加惡意的值。如果不檢查這些值,就使得攻擊者可以提交本來不可能存在的控制項值。
例如,假設你有一個顯示當前用戶訂單的列表。狡詐的攻擊者可能保存該頁面的一個本地副本,修改HTML內容向列表添加更多的項目,然後選擇某個「假」的項目。如果攻擊成功,攻擊者就能夠看到其他用戶訂單,這顯然是一個問題。幸好,ASP.NET使用一個很少被提及的叫做「事件驗證」的特性來防止這種攻擊。事件驗證檢查回發到伺服器的數據並驗證其中值的合法性。例如,如果回發的數據表明用戶選擇了一個沒有意義的數據(因為它在控制項中並不存在),ASP.NET就產生一個錯誤並停止處理。可以在Page指令中設置EnableEventValidation特性為false來禁用事件驗證。創建使用客戶端腳本動態改變內容的頁面時,需要執行這一步。不過,此時在使用這些值之前要注意檢查潛在的POST注入攻擊。
;