Mysql UDF提权实验

通过实训平台学习一下UDF提权

实验环境

 实验原理

udf = 'user defined function',即‘用户自定义函数’。是通过添加新函数,对MYSQL的功能进行扩充,性质就象使用本地MYSQL函数如abs()或concat()。udf在mysql5.1以后的版本中,存在于‘mysql/lib/plugin’目录下,5.1之前位于“C:\Windows\System32\”,文件后缀为‘.dll’,常用c语言编写。

如果我们拥有对 mysql库的创建和删除权限的话,就可以首先上传提供渗透攻击功能的UDF.DLL 文件,然后在 MySQL 中创建自定义的函数,功能来源于上一步上传的 UDF.DLI文件;最后调用上一步中创建的自定义函数,实现渗透攻击。

实验目的

利用udf提权方法,获取目标系统管理员权限

实验过程

1.上传并导入UDF.DLL文件

实验平台中已经提供了dll文件,实际渗透过程中可以利用sqlmap自带的dll文件

获取数据库权限后,先查询mysql版本,确定为5.1之前的版本

 自动的mysqlup工具会把dll文件进行16进制编码,同时利用sql语句创建临时表,插入UDF文件里面的数据,删除临时表

 保存的内容放到txt文件里面

 然后通过source命令,在目标数据库执行本地txt文件里的sql语句

 查询文件,确认dll文件是否上传成功

2.MySQL 中创建自定义的函数

1
CREATE FUNCTION backshell RETURNS STRING SONAME 'udf.dll';

 实验中上传的dll文件是具有反弹shell功能,函数命名跟dll文件中函数对应

3.执行创建的函数,获取system权限

本地用nc监听

 mysql执行backshell函数

 本地监听获取会话,并且是system权限

 

posted @   白云之东  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示