Mysql任意读取客户端文件,Mysql任意读取客户端文件
load data infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n';
实现:Mysql Server会读取服务端的/etc/passwd,然后将其数据按照'\n'分割插入表中,但现在这个语句同样要求你有FILE权限,以及非local加载的语句也受到secure_file_priv的限制
流程的话是: 客户端 读取 服务端本地中的文件 到 服务端的Mysql中
缺点:要求你有FILE权限,受到secure_file_priv的限制!
mysql> load data infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n';
ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
相同环境下,如果使用load data local infile,则可以进行成功读取!
流程的话是:客户端 读取 客户端本地中的文件 到 服务端中的Mysql中,但是与上面有个最大的不同点是读取方读取的文件是相反的!
mysql> load data local infile "/etc/passwd" into table test FIELDS TERMINATED BY '\n';
Query OK, 11 rows affected, 11 warnings (0.01 sec)
Records: 11 Deleted: 0 Skipped: 0 Warnings: 11
可能觉的是挺鸡肋的,但是如果配合相应的环境下还是可以进行利用的!
这时候利用上面这一点,现在我们的情况就是 服务端可以任意读取客户端中的文件!
例子1: Adminer的利用
受害者:192.168.1.157 ,该机器上面存在adminer数据库工具
攻击者:192.168.1.143
1、攻击者打开受害者的web界面如下,发现可以进行外连操作
2、然后攻击者进行adminer连接到自己的mysql服务器上
3、攻击者执行LOAD DATA LOCAL INFILE 'C:\\programdata\\1.txt' INTO TABLE table;
4、攻击者打开自己的mysql服务器查看,读取成功!
案例2:Discuz x3.4
在Discuz x3.4的配置中存在这样两个文件
config/config_ucenter.php
config/config_global.php
1、在dz的后台,有一个Ucenter的设置功能,这个功能中提供了ucenter的数据库服务器配置功能,通过配置数据库链接恶意服务器,可以实现任意文件读取获取配置信息。
2、配置ucenter的访问地址
原地址: http://localhost:8086/upload/uc_server
修改为: http://localhost:8086/upload/uc_server\');phpinfo();//
当我们获得了authkey之后,我们可以通过admin的uid以及盐来计算admin的cookie。然后用admin的cookie以及UC_KEY来访问即可生效!
LOAD DATA LOCAL INFILE权限要求
最后自己还想下看下关于LOAD DATA LOCAL INFILE是否也收到数据库权限或者是用户权限的限制
那么就有四种情况
1、高数据库权限 高PHP权限 ----> 读取成功
2、高数据库权限 低PHP权限 ----> 读取失败
3、低数据库权限 高PHP权限 ----> 读取成功
4、低数据库权限 低PHP权限 ----> 读取失败
总结:
LOAD DATA LOCAL INFILE 继承的是 执行客户端 用户权限 且只能读 mysql客户端 本地文件
若 webshell 中如果能读取 user.MYD 文件,LOAD DATA LOCAL INFILE 就能读该文件
若 webshell 中如果不能读取 user.MYD 文件,LOAD DATA LOCAL INFILE 就不能读该文件
Mysql任意读取客户端文件,Mysql任意读取客户端文件相关推荐
- mysql 读取data文件_利用mysql的LOAD DATA INFILE的功能读取客户端文件
前言:今天在浏览某知论坛时,看到某大佬在渗透过程中使用伪造的MySQL服务端读取客户端文件,此大佬在利用过程中描述得不是很详细,作为小白的我看不懂啊,由此产生了此篇文章. 某大佬文章:https:// ...
- java 读取mysql日志_如何在MySQL中查看日志文件?
我已经读过Mysql服务器创建了一个日志文件,它记录了所有活动 - 比如何时执行查询和执行什么查询 . 谁能告诉我我的系统中存在哪些内容?我怎么读呢? 基本上,我需要使用不同的输入备份数据库[两个日期 ...
- php如何将读取到的mysql内容按发布的日期分割显示_php如何读取文件夹目录里的文件并按照日期,大小,名称排序...
最近用到的php读取文件夹目录里的文件,并按照日期,大小,名称排序,所以写了一个方法,备用. function dir_size($dir,$url){ $dh = @opendir($dir); ...
- php 读取文件大小限制,PHP fread():读取文件(任意长度)
PHP 中的 fread() 函数可以在打开的文件中读取指定长度的数据,也可以安全用于二进制文件.在区分二进制文件和文本文件的系统上(如 Windows)打开文件时,fread() 函数的 mode ...
- 【MySQL基本查询】Create(创建), Retrieve(读取),Update(更新),Delete(删除)
表的增删查改 1.Create 1.1 单行数据 + 全列插入 1.2 多行数据 + 指定列插入 1.3 插入否则更新 1.4 替换 2.Retrieve 2.1 SELECT 列 2.1.1 全列查 ...
- mysql存读图片_mysql如何储存读取图片
mysql储存读取图片的方法:首先将图片转换成缓冲流:然后获得图片的字节数组并执行相关操作:最后通过"public void MapSearchQuery(out byte[] imageB ...
- 如何实现mysql千万级数据库插入速度和读取速度
mysql千万级数据库插入速度和读取速度的调整记录 2018.11.1 Mysql version 5.7.23 一般情况下mysql上百万数据读取和插入更新是没什么问题了,但到了上千万级就会出现很慢 ...
- mysql 读取properties_JDBC中使用Properties读取配置文件有什么用
开发中获得连接的4个参数(驱动.URL.用户名.密码)通常都存在配置文件中,方便后期维护,程序如果需要更换数据库,只需要修改配置文件即可. 使用properties文件,Java中有专门用来装载配置文 ...
- php mysql odbc_javascript连接mysql与php通过odbc连接任意数据库的实例
脑洞大开用javascript链接mysql,2个小时总算实现了,用到了odbc,后面又想到用php链接odbc链接数据库,也实现了,就把案例放一下. 注意事项: 1.javascript连接mysq ...
最新文章
- 破解人工智能系统的四种攻击方法!
- 初步了解超图桌面版导入CityGML数据
- Django从理论到实战(part36)--QuerySet转换SQL
- android拦截短信获取短信内容,《英雄联盟手游》先锋测试招募说明:仅安卓用户...
- Django---Model操作
- miui12 android系统耗电,miui12耗电严重怎么办,miui12续航优化方法
- html/css小练习2
- Python计算电场中两点间的电势差
- 更高效地提高redis client多线程操作的并发吞吐设计
- 客气:是礼貌,更是修养 — 《别输在不会表达上》
- MFC 消息映射表和虚函数实现消息映射到底谁的效率高
- 18、HTML5 Video(视频)和 audio(音频)
- illustrator插件--常用功能开发--条码生成--js脚本开发--AI插件
- Python:50行代码实现下载小说,图片章节可自动识别转文字保存...
- 饥荒控制台输入没用_饥荒控制台怎么使用?饥荒控制台代码应该怎么输入?_图文攻略_高分攻略_百度攻略...
- 补交20145226蓝墨云班课 -- 后缀表达式
- 分布式路由策略(Hash取余,一致性Hash,Hash槽)
- 【SpringBoot】MultipartFile的transferTo()方法详解
- 李笑来:“我们不要过度乐观”
- 进阶知识体系之你不能不知道的CDN