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

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

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

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

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

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

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

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

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

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

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

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

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

就可以成功反弹出linux shell了,再往下就。不过UDF的利用也有局限性,需要有mysql库的操作权限,在mysql库下必须有func表;在skip  grant  tables开启的情况下,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)

mysql udf禁用_Mysql数据库UDF的安全问题利用相关推荐

  1. mysql删除原则_MySQL数据库的增删选查

    数据库是专门存储数据对象的容器,这里的数据对象包括表.视图.触发器.存储过程等,其中表是最基本的数据对象. 创建数据库 在 MySQL 数据库中存储数据对象之前,先要创建好数据库. 语法: creat ...

  2. mysql select表达式_MySQL数据库SELECT查询表达式解析

    数据的管理在很大一部分是在进行查找工作,而SELECT占据了很大的一部分 SELECT select_expr [,select_expr...] [ FROM table_reference WHE ...

  3. mysql断网_mysql数据库断网链接

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  4. centos72安装mysql配置密码_MySQL数据库之170419、Centos7下完美安装并配置mysql5.6

    本文主要向大家介绍了MySQL数据库之170419.Centos7下完美安装并配置mysql5.6 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. linxu环境: centos ...

  5. mysql 关闭锁_mysql数据库取消锁

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  6. mysql权限表_MySQL 数据库赋予用户权限操作表

    MySQL清空数据库的操作:truncate table tablename; MySQL 赋予用户权限命令的简单格式可概括为:grant 权限 on 数据库对象 to 用户 一.grant 普通数据 ...

  7. mysql客户端查询_MySQL数据库之利用mysql客户端查询UCSC数据库

    本文主要向大家介绍了MySQL数据库之利用mysql客户端查询UCSC数据库 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. UCSC Genome Browser是由Unive ...

  8. mysql 表上限_mysql 数据库表的上限

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  9. mysql case默认_MySQL数据库架构和同步复制流程

    在分布式系统里面,往往制约整个系统发展的瓶颈点就是数据库,所以数据库的架构和高可用以及数据库的切分都是我们值得花大力气去学习的. 首先我们来说说数据库的架构. 1.mysql主从架构,如图: 这种架构 ...

最新文章

  1. python内建作用域_为什么 Python 的类不构成作用域(scope)?
  2. AI设计的新启发 | 什么是用户体验中台?
  3. 16.异常处理机制:exception
  4. php curl https 443,PHP CURL支持HTTP、HTTPS 请求亲测可用
  5. Linux 命令之 w 命令-显示目前登入系统的用户信息
  6. vue借助axios实现网络通信
  7. 机器学习模型的可解释性
  8. linux在生活中的应用例子,LINUX操作系统在教师学生日常生活中的应用(全).docx
  9. 虚拟化技术、云计算服务模式、Docker安装
  10. Doris之拦截规则 sql黑名单
  11. 关于消息中间件,我找了一些比较好玩的讨论主题,觉得对于深入理解一些技术问题非常有帮助...
  12. 20165204 20165216 20165220 实验四 外设驱动程序设计
  13. MacOS Monterey 12.2 (21D49) OC 0.7.8 / Cl 5143 / PE 三分区原版黑苹果镜像
  14. mac安装java环境
  15. matlab如何批量去背景,ImageJ怎么消除背景 批量去背景教程
  16. numpy简单快速安装教程
  17. 文本特征提取之TF-IDF算法(原理+Python代码)
  18. Javascript-放大镜实现原理分析
  19. Red5应用开发(三) 点播
  20. 七夕了,男朋友说他想学学算法~

热门文章

  1. 关联规则挖掘算法_数据挖掘 | 关联规则分析
  2. Exception in thread main java.lang.Error: Unresolved compilation problems 解决方案
  3. VS Code无法远程连接服务器的解决办法
  4. hdu5375(格雷码问题+简单DP)
  5. Luogu P5469 [NOI2019]机器人 (DP、多项式)
  6. Linux下pwn从入门到放弃,pwn从入门到放弃第六章——简单ROP
  7. Python error: Unable to find vcvarsall.bat
  8. HDU 4741 Save Labman No.004 计算几何 数学
  9. windows下自制动画层引擎 - 放两个demo
  10. 一致性hash 简单实现