Task
题目
Solution
一个图片上传功能(submit),还有一个图片查看功能(view)。点击后可发现url是:
在submit处有上传功能,对应的页面是upload.php。
猜测有包含漏洞,用php伪协议读取源码,其余类似:
upload.php:
index.php:
在upload.php中,它先将我们上传的文件保存到uploads文件夹下,然后sleep(2),接着调用imagecreatefromgif等一系列操作。如果我们上传一个包含php代码的图片木马,在经过imagecreatefromgif等一系列操作后,正常情况下其中的php代码会被去掉,也就是说操作过后的图片已经不是图片木马了。不过由于存在sleep(2),可以利用这个两秒的空隙,利用phar或者zip协议去包含我们上传的还未被删除的图片木马。
基本的流程如下。
首先有个k.php,内容如下:
将它压缩为zip文件,文件名为k.zip。
然后上传时将其文件名改为k.jpg,类型改为image/jpeg。在上传后访问http://202.112.51.217:8199/uploads/
,去获取最新的文件名,然后用协议去包含。如果手动的话时间肯定会超过2s,所以需要用脚本。
|
|
之后将getshell里的改为:
因为index.php中对#
进行了过滤,所以zip协议用不了。因为zip协议的利用要如下: