0x01 UDF
UDF(user defined function)用戶自定義函數,是mysql的一個拓展接口。用戶可以通過自定義函數實現在mysql中無法方便實現的功能,其添加的新函數都可以在sql語句中調用,就像調用本機函數一樣。
0x02 windows下udf提權的條件
- 如果mysql版本大於5.1,udf.dll文件必須放置在mysql安裝目錄的lib\plugin文件夾下/
- 如果mysql版本小於5.1, udf.dll文件在windows server 2003下放置於c:\windows\system32目錄,在windows server 2000下放置在c:\winnt\system32目錄。
- 掌握mysql數據庫的賬戶,從擁有對mysql的insert和delete權限,以創建和拋棄函數。
- 擁有可以將udf.dll寫入相應目錄的權限。
0x03 提權方法
如果是mysql5.1及以上版本,必須要把udf.dll文件放到mysql安裝目錄的lib\plugin文件夾下才能創建自定義函數。該目錄默認是不存在的,需要使用webshell找到mysql的安裝目錄,並在安裝目錄下創建lib\plugin文件夾,然后將udf.dll文件導出到該目錄。
在sqlmap中可以導入udf
復制到新建目錄
create function sys_eval returns string soname "lib_mysqludf_sys.dll"; --引用共享庫文件創建存儲過程
成功執行命令,可以看到當前權限為administrator
刪除該函數
參考
https://www.cnblogs.com/sijidou/p/10522972.html
https://www.jianshu.com/p/5b34c1b6dee7
https://blog.csdn.net/qq_26090065/article/details/81515355