深入学习udf提权

admin 2023年3月12日22:08:18评论50 views字数 903阅读3分0秒阅读模式

udf(User-Defined Functions)用户自定义函数

UDF是mysql的一个拓展接口。用户可以通过自定义函数实现在mysql中无法方便实现的功能,对MYSQL的功能进行扩充,性质就象使用本地MYSQL函数如abs()或concat() ,其添加的新函数都可以在sql语句中调用,就像调用本机函数一样,

Mysql版本

提权dll存放位置

>5.1

mysql根路径(select @@basedir)下/lib/plugin/

<5.1

系统目录c:windowssystem32下

条件:mysql账号有insert和delete权限,一般root账号最佳,具备root账号所具备的条件也可以。

secure_file_priv不能为NULL

secure_file_priv是用来限制load_file()、load dumpfile、into outfile在哪个目录上拥有上传或者读取文件的权限,如果想写shell的话这个值不能为NULL(本地自己操作的时候,可以通过my.ini进行修改)

  • 当secure_file_priv的值为NULL时表示不允许导入导出,这个时候不能提权

  • 当secure_file_priv的值为空时表示没有限制,可以任意导入导出,这个时候可以提权

  • 当secure_file_priv的值为某个目录时,表示只能在这个文件夹下面导入导出,这时候不能提权


深入学习udf提权

深入学习udf提权

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

函数:

sys_eval,执行任意命令,并将输出返回。

sys_exec,执行任意命令,并将退出码返回。

sys_get,获取一个环境变量。

sys_set,创建或修改一个环境变量

select * from mysql.func 来查看绑定的函数

深入学习udf提权

深入学习udf提权


这些函数哪里来的?

其实很多对于这个提权,都是会用,但是没想过这些函数是怎么跑出来的?

而sys_eval这些函数,都是来自于dll中的函数

https://github.com/mysqludf/lib_mysqludf_sys/blob/master/lib_mysqludf_sys.c

深入学习udf提权

深入学习udf提权

深入学习udf提权

深入学习udf提权

深入学习udf提权


原文始发于微信公众号(HACK安全):深入学习udf提权

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年3月12日22:08:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   深入学习udf提权https://cn-sec.com/archives/1595989.html

发表评论

匿名网友 填写信息