Mysql UDF提權方法
阿新 • • 發佈:2020-07-15
##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檔案匯出到該目錄。
![](https://img2020.cnblogs.com/blog/1801637/202007/1801637-20200714221001275-1379482934.png)
![](https://img2020.cnblogs.com/blog/1801637/202007/1801637-20200714221007913-1295693276.png)
在sqlmap中可以匯入udf
![](https://img2020.cnblogs.com/blog/1801637/202007/1801637-20200714221013059-354124663.png)
![](https://img2020.cnblogs.com/blog/1801637/202007/1801637-20200714221033368-781909927.png)
複製到新建目錄
![](https://img2020.cnblogs.com/blog/1801637/202007/1801637-20200714221043911-1927894818.png)
```mysql
create function sys_eval returns string soname "lib_mysqludf_sys.dll"; --引用共享庫檔案建立儲存過程
```
![](https://img2020.cnblogs.com/blog/1801637/202007/1801637-20200714221114525-124454187.png)
成功執行命令,可以看到當前許可權為administrator
![](https://img2020.cnblogs.com/blog/1801637/202007/1801637-20200714221123521-695702054.png)
刪除該函式
![](https://img2020.cnblogs.com/blog/1801637/202007/1801637-20200714221134765-265899755.png)
參考
https://www.cnblogs.com/sijidou/p/10522972.html
https://www.jianshu.com/p/5b34c1b6dee7
https://blog.csdn.net/qq_26090065/article/details/81515355