一、环境搭建
upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。
下载地址:https://github.com/c0ny1/upload-labs/releases
在 win 环境下 直接解压到phpstudy下即可
二、通关
(一)16关
解题思路;生成带有php代码的图片上传,配合包含漏洞拿下此关。
具体示例
将`<?php phpinfo(); ?>`添加到111.gif的尾部.
成功上传含有一句话的111.gif,再将上传的图片下载到本地.
我们使用16进制编辑器将其打开.可以看到下载下来的文件名已经变化,所以这是经过二次渲染的图片.
使用HxD Hex Editor进行比较
下载地址:HxD - Freeware Hex Editor and Disk Editor | mh-nexus
我们将代码写到没有变化的位置.
上传后在下载到本地使用16进制编辑器打开
(二)17关
第十七关主要是把二次渲染绕过
imagecreatefromjpeg()函数
二次渲染是由Gif文件或 URL 创建一个新图象。成功则返回一图像标识符/图像资源,失败则返回false,导致图片马的数据丢失,上传图片马失败。
进行通关
按照原来的方法进行上传,我们可以发现还是可以上传的,但是配合包含漏洞却无法解析,这时我们把上传的图片复制下来用Notepad打开,发现我们原来写的php代码没有了,这就是二次渲染把我们里面的php代码删掉了。
我们把原图和他修改过的图片进行比较,看看哪个部分没有被修改。将php代码放到没有被更改的部分,配合包含漏洞,就可以了。
然后比较,具体参考上面一题