亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

Mysql注入中outfile、dumpfile、load_file函數的示例分析

發布時間:2021-07-29 14:05:48 來源:億速云 閱讀:228 作者:小新 欄目:MySQL數據庫

這篇文章將為大家詳細講解有關Mysql注入中outfile、dumpfile、load_file函數的示例分析,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

在利用sql注入漏洞后期,最常用的就是通過mysql的file系列函數來進行讀取敏感文件或者寫入webshell,其中比較常用的函數有以下三個

  • into dumpfile()

  • into outfile()

  • load_file()

我們本次的測試數據如下

Mysql注入中outfile、dumpfile、load_file函數的示例分析

讀寫文件函數調用的限制

因為涉及到在服務器上寫入文件,所以上述函數能否成功執行受到參數 secure_file_priv 的影響。官方文檔中的描述如下

Mysql注入中outfile、dumpfile、load_file函數的示例分析

翻譯一下就是

  • 其中當參數 secure_file_priv 為空時,對導入導出無限制

  • 當值為一個指定的目錄時,只能向指定的目錄導入導出

  • 當值被設置為NULL時,禁止導入導出功能

這個值可以通過命令 select @@secure_file_priv 查詢。由于這個參數不能動態更改,只能在mysql的配置文件中進行修改,然后重啟生效。

dumpfile與outfile的區別

導出數據庫場景下的差異

select …… into outfile

我們先來看一下mysql官方文檔里對于這兩個函數的解釋

Mysql注入中outfile、dumpfile、load_file函數的示例分析

Mysql注入中outfile、dumpfile、load_file函數的示例分析

其中有兩個值得注意的坑點

outfile函數可以導出多行,而dumpfile只能導出一行數據
outfile函數在將數據寫到文件里時有特殊的格式轉換,而dumpfile則保持原數據格式

我們接下來通過導出測試看看這里面的細節

首先通過命令 select * from test into outfile '/tmp/test.txt' 來使用outfile導出

可以看到文件 /tmp/test.txt 文件中保存了所有的數據并且在一行數據的末尾自動換行

Mysql注入中outfile、dumpfile、load_file函數的示例分析

通過查看官方文檔,可以看出使用如下參數可以進行格式調整

Mysql注入中outfile、dumpfile、load_file函數的示例分析

其中 FIELDS ESCAPED BY 可以用來對指定的字符進行轉義, FIELDS [OPTIONALLY] ENCLOSED BY 用來對字段值進行包裹, FIELDS TERMINATED BY 用來對字段值之間進行分割

例如使用如下命令 select * from test into outfile '/tmp/test.txt FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY ' " 'LINES TERMINATED BY '\n'

得到的導出文件如下

Mysql注入中outfile、dumpfile、load_file函數的示例分析

select …… into dumpfile

而接著使用命令 select * from test into dumpfile '/tmp/test.txt' 使用dumpfile進行導出

可以看到此命令在執行的時候提示輸出超過一行

Mysql注入中outfile、dumpfile、load_file函數的示例分析

查看文件內容

Mysql注入中outfile、dumpfile、load_file函數的示例分析

可以看見通過dumpfile導出的數據行數據之間并未進行換行且只導出了部分數據

寫入webshell或者udf下的差異

 select …… into outfile

我們使用命令 select 'a\naa\raaaa' into outfile '/tmp/test.txt' 來看一下在常用的寫文件場景下的結果

Mysql注入中outfile、dumpfile、load_file函數的示例分析

可以看到outfile對導出內容中的\n等特殊字符進行了轉義,并且在文件內容的末尾增加了一個新行

我們接著使用命令 select 'a\naa\raaaa' into dumpfile '/tmp/test.txt' 來看一下

Mysql注入中outfile、dumpfile、load_file函數的示例分析

可以看到dumpfile對文件內容是原意寫入,未做任何轉移和增加。這也就是為什么 我們在平常的UDF提權中使用dumpfile進行dll文件 寫入的原因

還有一個需要關注的點就是:outfile后面不能接0x開頭或者char轉換以后的路徑,只能是單引號路徑。這個問題在php注入中更加麻煩,因為會自動將單引號轉義成\',那么基本就GG了,但是load_file,后面的路徑可以是單引號、0x、char轉換的字符,但是路徑中的斜杠是/而不是\

關于“Mysql注入中outfile、dumpfile、load_file函數的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

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

AI

定西市| 进贤县| 永靖县| 潼关县| 元谋县| 怀宁县| 永寿县| 嘉兴市| 施秉县| 巨鹿县| 菏泽市| 施甸县| 承德市| 莆田市| 长寿区| 乌什县| 法库县| 土默特右旗| 科尔| 延长县| 百色市| 略阳县| 梁平县| 蓬安县| 通许县| 郎溪县| 新巴尔虎左旗| 乐安县| 太仆寺旗| 巨鹿县| 都匀市| 饶河县| 剑河县| 石柱| 云和县| 略阳县| 常熟市| 蓬安县| 时尚| 苍山县| 宜宾县|