先前我发布了一个用于MYSQL提权的UDF,不过好像不少朋友不是很明白它的使用,不断有人问我它的使用方法,有人干脆叫我写个此UDF的专用PHP。说实话在我写这个PHP之前就只学过点ASP,对PHP那是一窍不通,所以程序中不妥之处在所难免,高手不要见笑。PHP写的比较笨,这里就不讲它怎么写的了,直接讲它的使用。
一、功能:
利用MYSQL的自定义函数功能(再次声明:利用MYSQL UDF提权绝非是溢出,而是MYSQL本身的一个功能),将MYSQL账号转化为系统system权限。
二、适用场合:
1.目标系统是Windows(Win2000,XP,Win2003);2.你已经拥有MYSQL的某个用户账号,此账号必须有对mysql的insert和delete权限以创建和抛弃函数(MYSQL文档原语)。
三、使用帮助:
第一步:将PHP文件上传到目标机上,填入你的MYSQL账号经行连接。
图1 |
第二步:连接成功后,导出DLL文件,导出时请勿必注意导出路径(一般情况下对任何目录可写,无需考虑权限问题),对于MYSQL5.0以上版本,你必须将DLL导出到目标机器的系统目录(win 或 system32),否则在下一步操作中你会看到"No paths allowed for shared library"错误。
图2 |
第三步:使用SQL语句创建功能函数。
语法:Create Function 函数名(函数名只能为下面列表中的其中之一) returns string soname '导出的DLL路径';对于MYSQL5.0以上版本,语句中的DLL不允许带全路径,如果你在第二步中已将DLL导出到系统目录,那么你就可以省略路径而使命令正常执行,否则你将会看到"Can't open shared library"错误,这时你必须将DLL重新导出到系统目录。
图3 |
第四步:正确创建功能函数后,你就可以用SQL语句来使用这些功能了。
语法:select 创建的函数名('参数列表'); 每个函数有不同的参数,你可以使用select 创建的函数名('help');来获得指定函数的参数列表信息。
cmdshell 执行cmd;
downloader 下载者,到网上下载指定文件并保存到指定目录;
open3389 通用开3389终端服务,可指定端口(不改端口无需重启);
backshell 反弹Shell;
ProcessView 枚举系统进程;
KillProcess 终止指定进程;
regread 读注册表;
regwrite 写注册表;
shut 关机,注销,重启;
about 说明与帮助函数
图5 |