欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-06-15 20:56:52
...

最近一直在休假,没有写博客,转眼十一还剩最后一天,时间真的很快。今天想谈谈数据库的安全问题。对于数据库的安全问题,首先,重要的生成库千万不能放在公网上

最近一直在休假,没有写博客,转眼十一还剩最后一天,时间真的很快。今天想谈谈数据库的安全问题。

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

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

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

查看下这个udf库所支持的函数

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

创建函数并且查看是否创建成功,可以看到一个名叫sys_eval的UDF创建成功了。

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

最后利用UDF执行更高权限的功能

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

剩下的就用这个UDF获得系统权限吧,提示可以用nc反弹,在自己的主机上执行nc -vv -l -p 12345,在数据库上执行一下sql语句

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

就可以成功反弹出linux shell了,再往下就。不过UDF的利用也有局限性,需要有mysql库的操作权限,在mysql库下必须有func表;在skipgranttables开启的情况下,UDF会被禁止。

PS:mysqludf.so是我已有的一个库文件,利用它生成了udf.txt,执行以下sql语句即可

mysql> select hex(load_file('/usr/lib/mysqludf.so')) into outfile '/tmp/udf.txt'; Query OK, 1 row affected (0.04 sec)


本文出自 “老徐的私房菜” 博客,谢绝转载!