MySql UDF提权介绍
UDF(User Defined Functions)即用户自定义函数,通过这种方式可以实现命令执行,其原理是通过lib_mysqludf_sys提供的函数可以执行系统命令 攻击场景:同之前利用日志写WebShell的场景,即堆叠注入或MySQL终端权限或类似phpMyAdmin数据库管理工具后台权限等
UDF的几个关键函数
sys_eval():执行任意命令,并将输出返回
sys_exec():执行任意命令,并将返回码返回
sys_get():获取一个环境变量
sys set():创建或修改一个环境变量
UDF文件获取的方式
https://github.com/mysqludf/lib_mysqludf_sys
sqlmap工具中的UDF文件
sqlmap下:GitHub - sqlmapproject/sqlmap: Automatic SQL injection and database takeover tool
sqlmap中的UDF文件位于sqlmap/data/udf/mysqI/目录中,该文件经过编码,需要使用sqlmap/extra/cloak目录下的cloak.py文件进行解码
liunx:
python cloak.py -d -i ../../data/udf/mysql/linux/64/lib_mysqludf_sys.so_ -o lib_mysqludf_sys.so
windwos:
python cloak.py -d -i ../..