MySQL禁止导出文件时写WebShell的方法

2018年6月11日12:26:37 2 5,593

MySQL禁止导出文件时写WebShell的方法

MySQL的配置项中有一个secure-file-priv配置项,当该项的内容设置为null的时候,MySQL时不允许使用into outfile 等导出文件命令的,会提示“#1290 - The MySQL server is running with the --secure-file-priv option so it cannot execute this statement”,但是天无绝人之路,如果拿到了MySQL的root权限和web目录可以使用全局日志的方式(general_log_file)来写WebShell。

0x01 引言

本文的起因有点意思,是同学的测试服务器下面出现了一个文件,阿里云发短信说是木马后门,后来找我看一下,果然是一句话木马,不过文件的内容很杂乱,因为服务器禁用了into outfile等导出文件的命令,但是仍有root的弱口令,不知这个文件是怎么写上去的,因为网站是空的所以一定不是通过上传,初步确定是MySQL写的,因为使用的是phpStudy的测试环境,所以很容易拿到网站目录,后来通过查资料和测试,发现,尽管开启了secure-file-priv=null,但是防不胜防,还有general_log_file方法可用。

0x02 general_log_file介绍

general_log_file是MySQL的一个全局日志方法,开启并设置记录路径以后,所有的MySQL语句都会被保存到日志文件中。

基本命令如下:

0x03 写WebSHELL

前提条件:

1、已知MySQL知root账号密码。
2、已知网站目录

本测试中网站根目录为:G:\wamp\www,下面是测试步骤。

1、开启general_log

2、设置general_log_file

3、执行查询语句

4、关闭general_log

5、使用菜刀连接一句话木马

MySQL禁止导出文件时写WebShell的方法
MySQL禁止导出文件时写WebShell的方法

到此可以看到,WebShell已经使用中国菜刀成功连接。

0x04 关于写入的WebShell

既然我们已经写入了webshell,不妨打开看一下内容:

内容有点杂乱,但是还是能看到PHP的一句话木马内容,其实这就够了,因为文件的扩展名是php,所以文件中只要包含php的定界符和语句就可以被正常解析,非php内容可以忽略掉。

0x05 结束语

到此,文章已经结束,说点题外话,现在很多网站服务器都是使用了phpStudy来直接搭建服务器,并且不修改MySQL密码,而phpStudy的phpMyadmin可以直接远程打开,虽然phpStudy已经设置了secure-file-priv=null,但是仍然是道高一尺魔高一丈,轻松拿了WebShell,在此也提醒广发开发人员,一定要修改MySQL默认密码!一定要修改MySQL默认密码!一定要修改MySQL默认密码!。

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

目前评论:2   其中:访客  2   博主  0

    • 葛一速 0

      这个安全隐患挺危险的,一定要禁示它

      • 1 1