MySQL数据库UDF的安全问题利用

对于数据库的安全问题,首先,重要的生成库千万不能放在公网上,一旦被黑客入侵后果不堪设想,轻则数据丢失,重则被脱裤(整库被打包导出),如果恰恰又以明文存储了用户的密码,那么就太可怕了,去年轰动一时的某几个大型网站的用户数据泄漏事件都是因为明文的方式存储了用户的密码。

其次是大量的数据库弱口令问题存在,造成这个问题的原因往往是sa或者dba对安全问题疏忽,只为方便。

今天无意扫到一个弱口令的mysql数据库,我的话题也从这个弱口令mysql库开始。首先远程登录数据库,居然还是mysql数据库里root用户的弱口令,毫不客气的进入了数据库,执行一条sql语句查看ip地址和/etc/passwd文件的内容

MySQL数据库UDF的安全问题利用

这里主要是用到了load_file()函数,当然这个函数是可以被禁用的。以上可以轻松看到/etc/passwd文件的信息和ip地址,当然其他的文件内容都可以被看到。

由于load_file()函数只能实现类似系统命令cat的查看文件功能,但是想执行系统命令的功能,那么只能用UDF了,也就是User defined Function,用户定义函数。

查看mysql的plugin,plugin_dir的路径为/usr/lib/mysql/plugin

MySQL数据库UDF的安全问题利用

如果像我遇到这个数据库服务器一样,plugin_dir的路径为空也无所谓了。

MySQL数据库UDF的安全问题利用

执行以下sql语句,把udf.txt里面的十六进制的文件内容导出到/usr/lib/mysqludf.so

MySQL数据库UDF的安全问题利用

相关推荐