1. 程式人生 > 其它 >記一次ctf檔案上傳

記一次ctf檔案上傳

事情起因

最近有空就將之前參與過的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));

  • 根據回顯的狀態碼以及長度判斷出隨機上傳目錄

同上替換webshell 成功找到flag

本部落格記錄Sylon的學習總結和學習情況做記錄 望今後能記錄自己的學習之路,同時分享高品質博文!!!