記一次ctf檔案上傳
阿新 • • 發佈:2021-08-30
事情起因
最近有空就將之前參與過的CTF其中一道題做為筆記寫出來
(說實在的 CTF參加的不多 偶爾參與一次體會挺深的 和實戰比起來區別還是挺大的)
容器啟動 畫面很簡單
- 錄列舉找到了有個index.php.bak檔案下載下來 就是這個樣子基本上就是原始碼備份檔案了。
根據文件說明 大概知道這道題就是一個簡單的上傳題,難點就是上傳後會隨機建立一個上傳目錄,只要找到這個上傳目錄這道題就解了
-
隨機目錄會進行sha1(rand(0,1000));就能得到隨機上傳目錄
-
後臺大概為/工作目錄/upload/0-1000的sha1值/你上傳的檔名。
-
url基本為http://域名:埠/upload/0-1000的sha1值/你上傳的檔名
<?php
//error_reporting(0);
if(!isset($_SESSION['source']))
{
$_SESSION['source'] = sha1(rand(0,1000));
}
$finalPos = getcwd() . "/upload/" . sha1($_SESSION['source']);
$filePos = $finalPos . "/" . basename($fileName);
- 直接上傳phpinfo檔案試試
-
進行sha1(rand(0,1000));
-
根據回顯的狀態碼以及長度判斷出隨機上傳目錄