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界面如下,发现可以进行外连操作

d8d7e13c4428cba5e1569e78c88b13f2.png

2、然后攻击者进行adminer连接到自己的mysql服务器上

66037d0f45e77ab776d12aa87fc941e7.png

3、攻击者执行LOAD DATA LOCAL INFILE 'C:\\programdata\\1.txt' INTO TABLE table;

17fb3edf23171d746231e9252aace21f.png

4、攻击者打开自己的mysql服务器查看,读取成功!

5c1f69051cf3a07125608cdbed678891.png

案例2:Discuz x3.4

在Discuz x3.4的配置中存在这样两个文件

config/config_ucenter.php

config/config_global.php

1、在dz的后台,有一个Ucenter的设置功能,这个功能中提供了ucenter的数据库服务器配置功能,通过配置数据库链接恶意服务器,可以实现任意文件读取获取配置信息。

c3a40f7d08e13467e019a3417f3f7c7b.png

2、配置ucenter的访问地址

原地址: http://localhost:8086/upload/uc_server

修改为: http://localhost:8086/upload/uc_server\');phpinfo();//

当我们获得了authkey之后,我们可以通过admin的uid以及盐来计算admin的cookie。然后用admin的cookie以及UC_KEY来访问即可生效!

711e75a92dcb1de1e49344676ecec27d.png

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 就不能读该文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值