渗透测试:MySQL数据库UDF提权详解

mysql udf提权 udf提权只要是因为udf.dll文件,攻击者通过编写调用cmd或者shell的udf.dkk文件,并且导入到一个指定的文件夹目录下,创建一个指向udf.dll的自定义函数,从而在数据库中的查询就等价于在cmd或者shell中执行命令。查询下的MySQL版本,这里我的是5.7.26,是大于5.1版本的,也就是说,我们需要找到lib\plugin这个目录,然后将我们的udf.dll文件写进去,其实这里的目录需要我们自己创建。前面做的是为了做铺垫,后面我们提权需要使用这个16进制的udf.dll文件; 阅读详情

目录

写在开头

简介

提权前提

提权过程

总结与思考

写在开头

本文将介绍渗透测试的常规提权方法——UDF提权。光说不练假把式,为了方便阐述和演示,本文选取了vulhub靶机pWnOS2.0进行演示,该靶机的详细打靶过程见我的上一篇博客:

红队打靶:pWnOS2.0打靶思路详解(vulnhub)

本文介绍的是另外一种提权方法,UDF提权,读者如果没有合适的靶机,但想跟我一起复现这个提权过程,可以先看一下我的上一篇博客,拿到MySQL账号root的登录密码后,继续看本文的“提权过程”小节的内容。读者如果有合适的靶机,或仅仅是想了解UDF提权的原理与方法,可以直接看本文。具体UDF提权的利用过程还与MySQL的版本、服务器的操作系统(windows/linux)相关,本文的靶机是linux系统,MySQL版本>=5.1。

简介

UDF:User Defined Function 用户自定义函数,MySQL数据库的初衷是用于方便用户进行自定义函数,方便查询一些复杂的数据,同时也有可能被攻击者利用,使用udf进行提权。

提权原理:攻击者通过编写调用cmd或者shell的共享库文件(window为.dll,linux为.so),并且导入到一个指定的文件夹目录下,创建一个指向共享库文件的自定义函数,从而在数据库中的查询就等价于在cmd或者shell中执行命令。

执行过程:本质上还是利用了MySQL能够执行系统命令的特点。具体过程如下

(1)攻击者编写一些可以调用cmd或者shell的共享库文件(window为.dll,linux为.so),将共享库导入指定的函数目录中。

(2)在MySQL中创建指向共享库文件的自定义函数。

(3)通过刚刚创建的函数执行系统命令,实现提权。

提权前提

1.要有一个高权限的MySQL的账号,具有增删改查的权限以创建自定义函数,最好是root账号。

查看当前登录用户(以下两行均可):

select user();
select current_user;

 

 如上图,我们这里登录的用户是root,非常完美。如果不是root,可以用以下命令查看特定用户的权限,可以将root修改为任意用户,\G每个字段打印到单独的行,也有’;’的作用:

SELECT * FROM mysql.user WHERE user='root'\G

 可以看到root账号的权限基本都是Y(Yes),权限很高。还可以用如下的命令查看数据库的所有用户:

SELECT user,host FROM mysql.user;

 2.MySQL的权限配置secure_file_priv为空,此时load_data,into outfile,load_flie()都没有目录的限制,可以使用如下命令查看secure_file_priv参数的值:

【数据库提权】MySQL提权之UDF提权 文章目录一、什么是UDF?二、什么是动态链接库?三、UDF提权原理 一、什么是UDF? UDF(user-defined function)是MySQL的一个拓展接口,也可称之为用户自定义函数,它是用来拓展MySQL的技术手段,可以说是数据库功能的一种扩展,用户通过自定义函数来实现在MySQL中无法方便实现的功能,其添加的新函数都可以在SQL语句中调用,就像本机函数如ABS()或SOUNDEX()一样方便。 二、什么是动态链接库? DLL 是 Dynamic Link Library 的缩写,译为“动态 阅读详情

相关推荐

Bugku渗透测试实战:从外网到内网的完整Writeup

本文详细记录了从外网到内网的完整渗透测试实战过程。通过信息收集发现官网弱口令漏洞进入后台,利用前台代码执行功能获取Webshell,进而通过数据库UDF提权获得服务器root权限。最后以内网服务器为跳板,横向移动并利用Apache Shiro、ThinkPHP等框架漏洞攻陷多台内网主机,展示了渗透测试的完整链条与核心思路。

weixin_29240343的博客 384

渗透测试之提权 (udf提权+mof提权+启动项提权)

1. 提权 低权限给高权限去提取(你已经获得一定的权限) Windows 一般用户 系统用户 管理员 system Linux 普通用户 系统用户 root 2. udf提权 1、其利用条件是目标系统是Windows(Win2000,XP,Win2003);拥有MYSQL的某个用户账号,此账号必须有对mysql的insert和delete 权限以创建和抛弃函...

LKmnbZ's Blog 6052

Mysql之UDF提权

udf提权通过在mysql中添加自定义函数来执行系统命令。效果是从 mysql权限 —> 系统权限。提权限制条件挺多,如下先获取mysql的权限(连接上了mysql数据库)Mysql版本大于5.1,我们需手动创建plugin文件夹,这是个棘手的问题mysql有写入文件的权限,即secure_file_priv的值为空。

渗透之路,攻防之间皆学问 2万+

28377D Bootloader

架构

a6100309120的博客 6006

学习海康VisionMaster之圆查找

(1):ROI选中位置修正,并且修正信息需要选择刚刚创建的位置修正组件输出信息,这里的话后续的检测窗口一般都需要做这一步,因为大部分的应用场景都是需要用到实时跟踪的。圆查找模块是用于查找指定区域的圆,并且会输出该圆的相关参数信息,比如圆中心点,圆半径,圆是否存在等信息。7):剔除点数:和高级参数里面的剔除距离搭配使用的,就是过滤较远的边缘点,让拟合圆心出来的轮廓更加接近。中的圆查找,相当于就是拟合圆心,这个在视觉软件中的应用也是非常广泛的,通常用于定位,测量项目。

yuhouxiyang的专栏 2092

Ubuntu 24.04 搭建 Squid 代理服务器终极指南:从入门到 HTTPS 缓存AI模型

本文详细指导在Ubuntu 24.04系统部署Squid代理服务器,实现AI大模型文件的高效缓存。重点内容包括:1) 安装squid及必备的squid-openssl扩展包;2) 配置HTTPS拦截(SSL-Bumping)功能,创建CA证书和SSL数据库;3) 优化缓存策略,设置4TB存储空间并强制缓存常见大文件格式;4) 结合华为防火墙实现透明代理。文章特别强调实际部署中的关键注意事项和常见错误解决方案,如证书路径配置、权限设置等问题,帮助用户快速搭建企业级缓存代理服务。

zlt315的博客 1915

EPSON RX8010SJ RTC实战:I2C寄存器配置避坑指南(附完整初始化代码)

本文详细解析了EPSON RX8010SJ RTC芯片在I2C寄存器配置中的常见问题与解决方案,包括TEST位、STOP位和中断控制等关键配置要点。通过实战经验分享和完整的初始化代码模板,帮助开发者避免常见陷阱,确保RTC模块的稳定运行。

weixin_28678831的博客 401

一文速学数模-K-means聚类算法实战:信用卡用户画像聚类分析

该项目算是非常经典的金融业务用户画像的基础分析了,主要根据用户信用卡使用行为数据进行分析,根据收集到的不同字段信息,对每个用户划分类别。这里需要说明一下的是,聚类模型只是将具有相似行为的大部分用户聚集到一个类别里面,这点并不会考虑到每个字段的含义,也就是分成的类别并不是用户价值等级,此类别仅仅是这个类别大体相同的信用卡用户行为对象,并不能给每个用户价值打上标签,那是评价模型做的事,这里要注意不要搞混淆了,用户价值评价是评价模型决定的,而画像是聚类模型分析的。

master_hunter的博客 1万+

微信小程序 - 解决请求报错 request:fail errcode:-201 cronet_error_code:-201 error_msg:net::ERR_CERT_DATE_INVALID

微信小程序报错“request:fail errcode:-201 cronet_error_code:-201 error_msg:net::ERR_CERT_DATE_INVALID“,微信小程序请求报错,微信小程序errcode:-201,服务器报错,无法调用接口,微信小程序真机https请求失败,微信小程序wx.request接口报错,小程序真机调试运行接口都报错了,真机测试下网络请求都不行了且报错,证书没问题依旧报错,检查HTTPS证书,ssl证书,使用浏览器测试访问证书是正常的,不是证书问题,请

🏆 前端领域优质创作者 1万+

8. Spring Ai之入门到精通(超级详细)

Spring AI 1.0.0 M1里程碑版本发布,标志着 Java 终于踏进Ai的时代半只脚。

gorgor在码农 3万+

PCB仿真软件:Altium Designer_(6).PCB布线设计:自动布线与手工布线

通过以上步骤,我们完成了一个简单的PCB设计案例。在这个过程中,我们使用了自动布线和手工布线的综合策略,确保布线质量符合设计要求。创建PCB项目:在Altium Designer中创建一个新的PCB项目。导入原理图:将原理图文件导入到PCB项目中。设置布线规则:通过设置必要的布线规则,如线宽、间距等。启动自动布线:使用自动布线器进行初步布线。手工优化布线:通过手工布线工具优化关键信号的布线路径。保存和导出PCB文件:保存PCB文件并导出Gerber文件,用于生产。

kkchenjj的博客 2515

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

上一篇: 红队打靶:pWnOS2.0打靶思路详解(vulnhub)
下一篇: 红队打靶:pWnOS1.0打靶思路详解之webmin漏洞利用(vulnhub)
Boss_frank
博客等级 码龄6年 1229粉丝 66原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Boss_frank

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值