1. 程式人生 > >安恆月賽 image up

安恆月賽 image up

http://101.71.29.5:10007/index.php?page=login  

仔細觀察這個url的話會發現,存在檔案包含。

而且並沒有login.php而是login,猜測程式碼是

<?php include str."php";

隨便賬號密碼就能登陸,來到了一個上傳頁面,只能上傳圖片,回頭看看題目

這裡的思路明確了,檔案包含加圖片馬。

在這時間統一的世界裡,上傳圖片試試吧

突然發現,並不知道圖片去哪裡了。

用為協議讀取原始碼,

http://101.71.29.5:10007/index.php?page=php://filter/read=convert.base64-encode/resource=login
http://101.71.29.5:10007/index.php?page=php://filter/read=convert.base64-encode/resource=upload   

注意,因為包含檔案的時候自動拼接.php,所以這裡只寫login和upload

在upload這裡我們發現程式碼實現的功能。

分割檔名和檔案字尾,然後檔名儲存為MD5(當前時間+檔名)+檔案字尾,上傳到upload目錄下邊。  

這個檔名其實是可以預測的,只不過我們得稍微的爆破一下他前後左右很短的一段時間,訪問他是否存在來判斷時間是否正確。

製作一個圖片馬,上傳後立即執行指令碼。

直接包含這個圖片,發現不行,因為讀upload.php原始碼的時候會發現拼接了.php,相當於你包含了shell.jpg.php,這是一個不存在的檔案。

為了繞過拼接,我們可以用phar和zip為協議。

這樣就可以忽略.php的拼接了。。。

http://101.71.29.5:10043/index.php?page=zip://uploads/圖片.jpg%23shell密碼,然後命令執行就可以了