濮阳杆衣贸易有限公司

主頁 > 知識庫 > Mysql注入中的outfile、dumpfile、load_file函數(shù)詳解

Mysql注入中的outfile、dumpfile、load_file函數(shù)詳解

熱門標(biāo)簽:上海智能外呼系統(tǒng)需要多少錢 中科嘉智人工智能電銷機(jī)器人 做地圖標(biāo)注都需要什么工具 凱立德科技館地圖標(biāo)注 銀川電銷外呼系統(tǒng)定制 電銷機(jī)器人好品牌門薩維l 哈爾濱crm外呼系統(tǒng)價格 甘孜電話機(jī)器人廠家 西安400電話在哪里辦理

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

  • into dumpfile()
  • into outfile()
  • load_file()

我們本次的測試數(shù)據(jù)如下

讀寫文件函數(shù)調(diào)用的限制

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

翻譯一下就是

  • 其中當(dāng)參數(shù) secure_file_priv 為空時,對導(dǎo)入導(dǎo)出無限制
  • 當(dāng)值為一個指定的目錄時,只能向指定的目錄導(dǎo)入導(dǎo)出
  • 當(dāng)值被設(shè)置為NULL時,禁止導(dǎo)入導(dǎo)出功能

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

dumpfile與outfile的區(qū)別

導(dǎo)出數(shù)據(jù)庫場景下的差異

select …… into outfile

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

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

outfile函數(shù)可以導(dǎo)出多行,而dumpfile只能導(dǎo)出一行數(shù)據(jù)
outfile函數(shù)在將數(shù)據(jù)寫到文件里時有特殊的格式轉(zhuǎn)換,而dumpfile則保持原數(shù)據(jù)格式

我們接下來通過導(dǎo)出測試看看這里面的細(xì)節(jié)

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

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

通過查看官方文檔,可以看出使用如下參數(shù)可以進(jìn)行格式調(diào)整

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

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

得到的導(dǎo)出文件如下

select …… into dumpfile

而接著使用命令 select * from test into dumpfile '/tmp/test.txt' 使用dumpfile進(jìn)行導(dǎo)出

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

查看文件內(nèi)容

可以看見通過dumpfile導(dǎo)出的數(shù)據(jù)行數(shù)據(jù)之間并未進(jìn)行換行且只導(dǎo)出了部分?jǐn)?shù)據(jù)

寫入webshell或者udf下的差異

 select …… into outfile

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

可以看到outfile對導(dǎo)出內(nèi)容中的\n等特殊字符進(jìn)行了轉(zhuǎn)義,并且在文件內(nèi)容的末尾增加了一個新行

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

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

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

總結(jié)

以上所述是小編給大家介紹的Mysql注入中的outfile、dumpfile、load_file函數(shù)詳解,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • MySQL使用LOAD_FILE()函數(shù)方法總結(jié)

標(biāo)簽:四川 山南 濮陽 平頂山 安康 那曲 浙江 安徽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mysql注入中的outfile、dumpfile、load_file函數(shù)詳解》,本文關(guān)鍵詞  Mysql,注入,中的,outfile,dumpfile,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Mysql注入中的outfile、dumpfile、load_file函數(shù)詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于Mysql注入中的outfile、dumpfile、load_file函數(shù)詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    米泉市| 乐陵市| 乌拉特后旗| 库尔勒市| 如东县| 布尔津县| 育儿| 巴林右旗| 琼海市| 定日县| 永吉县| 宿迁市| 富阳市| 乌兰察布市| 交口县| 揭阳市| 灵川县| 益阳市| 伊川县| 福建省| 长宁区| 武胜县| 高淳县| 宽甸| 洪泽县| 平果县| 英德市| 三台县| 台北县| 台中县| 昌黎县| 呼和浩特市| 夏邑县| 博白县| 桃江县| 班戈县| 高唐县| 瓮安县| 长宁区| 漯河市| 大同县|