激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频

Oracle數據庫基本知識

時(shí)間:2024-09-13 22:46:00 Oracle認證 我要投稿
  • 相關(guān)推薦

Oracle數據庫基本知識

  Oracle Database,又名OracleRDBMS,或簡(jiǎn)稱(chēng)Oracle。是甲骨文公司的一款關(guān)系數據庫管理系統。本文為大家分享的是Oracle數據庫的基本知識,希望對大家有所幫助!

Oracle數據庫基本知識

  它是在數據庫領(lǐng)域一直處于領(lǐng)先地位的產(chǎn)品?梢哉f(shuō)Oracle數據庫系統是目前世界上流行的關(guān)系數據庫管理系統,系統可移植性好、使用方便、功能強,適用于各類(lèi)大、中、小、微機環(huán)境。它是一種高效率、可靠性好的適應高吞吐量的數據庫解決方案。

  介紹

  ORACLE數據庫系統是美國ORACLE公司(甲骨文)提供的以分布式數據庫為核心的一組軟件產(chǎn)品,是目前最流行的客戶(hù)/服務(wù)器(CLIENT/SERVER)或B/S體系結構的數據庫之一。比如SilverStream就是基于數據庫的一種中間件。ORACLE數據庫是目前世界上使用最為廣泛的數據庫管理系統,作為一個(gè)通用的數據庫系統,它具有完整的數據管理功能;作為一個(gè)關(guān)系數據庫,它是一個(gè)完備關(guān)系的產(chǎn)品;作為分布式數據庫它實(shí)現了分布式處理功能。但它的所有知識,只要在一種機型上學(xué)習了ORACLE知識,便能在各種類(lèi)型的機器上使用它。

  Oracle數據庫最新版本為OracleDatabase 12c。Oracle數據庫12c引入了一個(gè)新的多承租方架構,使用該架構可輕松部署和管理數據庫云。此外,一些創(chuàng )新特性可最大限度地提高資源使用率和靈活性,如Oracle Multitenant可快速整合多個(gè)數據庫,而Automatic Data Optimization和Heat Map能以更高的密度壓縮數據和對數據分層。這些獨一無(wú)二的技術(shù)進(jìn)步再加上在可用性、安全性和大數據支持方面的主要增強,使得Oracle數據庫12c 成為私有云和公有云部署的理想平臺。

  就業(yè)前景

  從就業(yè)與擇業(yè)的角度來(lái)講,計算機相關(guān)專(zhuān)業(yè)的大學(xué)生從事oracle方面的技術(shù)是職業(yè)發(fā)展中的最佳選擇。

  其一、就業(yè)面廣:ORACLE幫助拓展技術(shù)人員擇業(yè)的廣度,全球前100強企業(yè)99家都在使用ORACLE相關(guān)技術(shù),中國政府機構,大中型企事業(yè)單位都能有ORACLE技術(shù)的工程師崗位,大學(xué)生在校期間興趣廣泛,每個(gè)人興趣特長(cháng)各異,不論你想進(jìn)入金融行業(yè)還是電信行業(yè)或者政府機構,ORACLE都能夠在你的職業(yè)發(fā)展中給你最強有力的支撐,成為你最貼身的金飯碗。

  其二、技術(shù)層次深:如果期望進(jìn)入IT服務(wù)或者產(chǎn)品公司,Oracle技術(shù)能夠幫助提高就業(yè)的深度。Oracle技術(shù)已經(jīng)成為全球每個(gè)IT公司必選的軟件技術(shù)之一,熟練掌握Oracle技術(shù)能夠為從業(yè)人員帶來(lái)技術(shù)應用上的優(yōu)勢,同時(shí)為IT技術(shù)的深入應用起到非常關(guān)鍵的作用。掌握 Oracle技術(shù),是IT從業(yè)人員了解全面信息化整體解決方案的基礎。

  其三、職業(yè)方向多:Oracle數據庫管理方向、Oracle開(kāi)發(fā)及系統架構方向、Oracle數據建模數據倉庫等方向。

  Oracle數據庫漏洞分析:無(wú)需用戶(hù)名和密碼進(jìn)入你的數據庫

  一般性的數據庫漏洞,都是在成功連接或登錄數據庫后實(shí)現入侵;本文介紹兩個(gè)在2012年暴露的Oracle漏洞,通過(guò)這兩種漏洞的結合,可以在不掌握用戶(hù)名/密碼的情況下入侵Oracle,從而完成對數據的竊取或者破壞。這兩個(gè)漏洞就是CVE-2012-1675和CVE-2012-3137。

  引言

  國內外很多重要的系統都采用Oracle作為數據存儲的數據庫;在Oracle中存儲著(zhù)企業(yè)或政府大量敏感的信息,在金錢(qián)或政治的誘導下,內外部黑客會(huì )想法利用管理、網(wǎng)絡(luò )、主機或數據庫的自身漏洞嘗試入侵到數據庫中,以達到自身的目的。

  本文的作者通過(guò)對Oracle倆種漏洞的組合研究,設計了一套在不掌握用戶(hù)名/密碼的方式入侵到Oracle中;這種方法,比傳統的需要登錄到數據庫中的入侵方法,具有更大的安全隱患和破壞性。

  本文希望通過(guò)對這兩個(gè)漏洞和攻擊方法的介紹,能夠引起相關(guān)人員的重視,完善對數據庫安全的措施。

  1、概要介紹

  本文提供的方法是基于漏洞CVE-2012-1675和CVE-2012-3137對oracle數據庫的攻擊測試的方法。

  CVE-2012-1675漏洞是Oracle允許攻擊者在不提供用戶(hù)名/密碼的情況下,向遠程“TNS Listener”組件處理的數據投毒的漏洞。攻擊者可利用此漏洞將數據庫服務(wù)器的合法“TNS Listener”組件中的數據轉向到攻擊者控制的系統,導致控制遠程組件的數據庫實(shí)例,造成組件和合法數據庫之間的中間人攻擊、會(huì )話(huà)劫持或拒絕服務(wù)攻擊。

  CVE-2012-3137漏洞是Oracle Database 10g/11g身份驗證協(xié)議實(shí)現中存在一個(gè)設計缺陷,攻擊者無(wú)需認證即可遠程獲取數據庫用戶(hù)密碼哈希相關(guān)數據,從而可以離線(xiàn)暴力破解用戶(hù)密碼,進(jìn)一步控制數據庫系統。

  我們通過(guò)如下的步驟和過(guò)程可以實(shí)現對Oracle的入侵:

  (1)利用CVE-2012-1675進(jìn)行TNS劫持,在監聽(tīng)下利用遠程注冊,注冊同名數據庫實(shí)例;

  (2)新登陸的用戶(hù),在TNS的負載均衡策略下,有可能流量登錄到偽造的監聽(tīng)服務(wù)上;

  (3)該監聽(tīng)服務(wù)對用戶(hù)的登陸過(guò)程進(jìn)行監控,并將相關(guān)數據流量轉發(fā)到真實(shí)的數據庫上;

  (4)利用CVE-2012-3137獲得通訊過(guò)程中的認證相關(guān)信息;

  (5)對認證相關(guān)信息進(jìn)行離線(xiàn)的暴力破解,獲得登陸的密碼;

  (6)試用破解的用戶(hù)名/密碼登陸Oracle,完成對Oracle中數據的訪(fǎng)問(wèn);

  2、通過(guò)CVE-2012-1675進(jìn)行TNS劫持

  該漏洞存在于Oracle的所有版本,并且Oracle至今僅是發(fā)布了警告性通知,并未提供解決方案。

  要想利用CVE-2012-1675漏洞做TNS劫持,首先需要了解TNS機制。如下圖所示oracle 通過(guò)在本地解析網(wǎng)絡(luò )服務(wù)名到目標主機IP地址,服務(wù)端口號,目標數據庫名,把這些信息發(fā)送到oracle服務(wù)器端監聽(tīng)程序,最后再由監聽(tīng)程序遞送DBMS。

  其中關(guān)鍵點(diǎn)在于監聽(tīng)會(huì )按照目標數據庫名遞送到名稱(chēng)正確的數據庫。那么如果一個(gè)監聽(tīng)下有2個(gè)同名數據庫。監聽(tīng)將自動(dòng)按照負載均衡把這次訪(fǎng)問(wèn)發(fā)送到負載低的數據庫上,進(jìn)行連接訪(fǎng)問(wèn)。數據庫注冊到監聽(tīng)的方法就決定了,能否同時(shí)注冊同名數據庫在同一個(gè)監聽(tīng)下。注冊方式分為本地注冊和遠程注冊,通過(guò)修改參數可以調整為遠程注冊。

  下面是一段可用的TNS劫持的過(guò)程:

  1.在劫持機上創(chuàng )建一個(gè)和目標數據庫實(shí)例同名的數據庫實(shí)例。

  2.在劫持機上修改 tnsnames.ora 文件

  添加

  listener_name=

  (DESCRIPTION=

  (ADDRESS=(PROTOCOL=tcp)(HOST=目標機器IP)(PORT=目標機器端口)))

  3.在劫持機上用SQL*Plus 順序執行下面步驟。

  1.$ sqlplus / as sysdba

  2. SQL> ALTER SYSTEM SETREMOTE_LISTENER='LISTENER_NAME';

  3. SQL> ALTER SYSTEM REGISTER;

  4.多個(gè)客戶(hù)端,向數據庫發(fā)起登錄。會(huì )劫持到一部分客戶(hù)端的登錄信息。

  最終達到效果如下圖所示:

  按照猜想同一個(gè)監聽(tīng)下有2個(gè)同名實(shí)例?蛻(hù)端訪(fǎng)問(wèn)監聽(tīng),監聽(tīng)按照客戶(hù)端中的數據庫名信息分配數據庫,由于監聽(tīng)下有2個(gè)同名數據庫,客戶(hù)端鏈接很可能會(huì )被分配到劫持者的數據庫實(shí)例下,再通過(guò)配置劫持者的本地監聽(tīng)把客戶(hù)端請求指回原數據庫。結構圖如下:

  測試客戶(hù)端鏈接196次。目標數據庫實(shí)例獲得113次,劫持數據庫實(shí)例獲得83次基本滿(mǎn)足負載均衡的假設。(注上面實(shí)例是local server 下面實(shí)例是 remote server)

  通過(guò)以上方式我們可以截獲約一半左右客戶(hù)端發(fā)送到服務(wù)器的合法鏈接。其中獲得了服務(wù)器IP、端口號、數據庫位置、實(shí)例名、登錄用戶(hù)名等一系列明文信息和4組密文信息(AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA)。

  3、通過(guò)CVE-2012-3137進(jìn)行密碼破解

  CVE-2012-3137受影響的數據庫版本有11.2.0.3,11.2.0.2,11.1.0.7,有使用了SHA-1加密算法的10.2.0.5和10.2.0.4,還有使用了SHA-1的10.2.0.3(運行在z/OS下)版本。

  雖然這個(gè)漏洞在11.2.0.3中已經(jīng)解決,但是僅僅數據庫客戶(hù)端和服務(wù)器都升級到11.2.0.3并且sqlnet.ora文件中增加SQLNET.ALLOWED_LOGON_VERSION=12才有效。

  正如CVE-2012-3137所描述Oracle為了防止第三方通過(guò)網(wǎng)絡(luò )獲取登錄信息包。而對密碼進(jìn)行了加密處理。本部分只以oracle11.1密碼如何破解為例進(jìn)行說(shuō)明。

  在發(fā)起連接之后(oracle牽手完成),客戶(hù)端和服務(wù)器經(jīng)過(guò)協(xié)商確定要使用的驗證協(xié)議。要完成這個(gè)任務(wù),客戶(hù)端首先向數據庫發(fā)送一個(gè)包。包中包含客戶(hù)端主要信息和所請求的加密方式。數據庫確認加密方式有效后,發(fā)送一個(gè)確認服務(wù)包如下圖所示:

  在通過(guò)安全網(wǎng)絡(luò )服務(wù)完成任何所要求的協(xié)議之后,數據庫用戶(hù)被O3logon(oracle驗證方式) 進(jìn)行驗證,這個(gè)協(xié)議執行一個(gè)序列來(lái)向數據庫證明客戶(hù)端擁有密碼。為了避免網(wǎng)絡(luò )第三方截獲到密碼。首先客戶(hù)端發(fā)送用戶(hù)名到數據庫來(lái)表明用戶(hù)身份。數據庫端根據加密協(xié)議,其中96位的作為數據庫端密鑰,20位的作為偏移量,它對每個(gè)連接都是不同的。一個(gè)典型的數據庫端發(fā)給客戶(hù)端的密鑰如下:

  AUTH_SESSKEY.....COCDD89FIGODKWASDF……………………

  客戶(hù)端根據加密算法向服務(wù)器端發(fā)送96位的客戶(hù)端密鑰和64位的密碼密鑰。服務(wù)器端計算客戶(hù)端傳入的密碼密鑰。如果計算后密碼密文和數據庫中存儲的16位密碼密文一致則驗證通過(guò)。

  根據這個(gè)過(guò)程可知上面TNS劫持包中取得的加密信息:AUTH_SESSKEY,AUTH_SESSKEY_CLIENT,AUTH_PASSWORD,AUTH_VFR_DATA這四個(gè)值是解密的關(guān)鍵。我們把他們按照SHA1,MD5,AES192進(jìn)行一系列處理。最終通過(guò)數據字典碰撞得到密碼明文。

  下面這段網(wǎng)上公布的一段示例代碼,這段代碼與筆者的思路不完全相同,但也能大概地說(shuō)明這個(gè)漏洞的攻擊過(guò)程:

  import hashlib

  from Crypto.Cipher import AES

  def decrypt(session,salt,password):

  pass_hash= hashlib.sha1(password+salt)

  key =pass_hash.digest() + '\x00\x00\x00\x00'

  decryptor= AES.new(key,AES.MODE_CBC)

  plain =decryptor.decrypt(session)

  returnplain

  session_hex ='EA2043CB8B46E3864311C68BDC161F8CA170363C1E6F57F3EBC6435F541A8239B6DBA16EAAB5422553A7598143E78767'

  salt_hex = 'A7193E546377EC56639E'

  passwords = ['test','password',''oracle','demo']

  for password in passwords:

  session_id= decrypt(session_hex.decode('hex'),salt_hex.decode('hex'),password)

  print'Decrypted session_id for password "%s" is %s' %(password,session_id.encode('hex'))

  ifsession_id[40:] == '\x08\x08\x08\x08\x08\x08\x08\x08':

  print'PASSWORD IS "%s"' % password

  break

  4、建議的預防措施

  根據以上兩段分析,我們可以有如下的預防措施:

  (1)在條件許可的情況下,對Oracle進(jìn)行補丁升級,對Oracle打cpuoct2012-1515893補丁;注意對于cpuoct2012-1515893補丁要求服務(wù)器端和應用服務(wù)器端同時(shí)升級,否則應用系統將無(wú)法訪(fǎng)問(wèn)Oracle;

  (2)若無(wú)法對Oracle升級,要購買(mǎi)或安裝具備虛擬補丁功能的數據庫安全產(chǎn)品,防止對CVE-2012-3137和CVE-2012-1675的利用;

  (3)建立足夠強健的口令,不要使用8位以下密碼,或者字典庫中的口令。

【Oracle數據庫基本知識】相關(guān)文章:

Oracle數據庫SELECT語(yǔ)句03-27

oracle數據庫基本語(yǔ)句02-08

Oracle數據庫語(yǔ)句大全12-21

Oracle數據庫認證層次03-09

ORACLE數據庫操作基本語(yǔ)句03-06

oracle數據庫培訓課程大綱03-21

oracle數據庫基礎知識01-21

Oracle 數據庫查詢(xún)小技巧03-21

Oracle數據庫臨時(shí)表管理技巧03-23

激情欧美日韩一区二区,浪货撅高贱屁股求主人调教视频,精品无码成人片一区二区98,国产高清av在线播放,色翁荡息又大又硬又粗视频