第16关(文件包含+图片马)
这关和第15关没有什么不同,做法是一样,但这关使用exif_imagetype()检查是否为图片文件,所以我们需要开启开启php_exif扩展
这里我先说明一下php的exif_imagetype()函数
exif_imagetype - 确定图像的类型
exif_imagetype()读取图像的第一个字节并检查其签名。
可以使用exif_imagetype()来避免调用其他具有不受支持的文件类型的exif函数,或者与$ _SERVER ['HTTP_ACCEPT']一起检查查看器是否能够在浏览器中查看特定图像。
开启php_exif扩展的方法
首先我们先在phpstudy上开启这个拓展,按照以下方法就可以找到
同时我们还需要修改我们使用的php版本对应的php.ini配置文件
一般按照以下路径寻找,但每个人可能不同,根据实际情况来
打开php.ini文件
1.在php.ini文件中找到;extension=php_exif.dll,去掉前面的分号
2.在php.ini文件中找到;extension=php_mbstring.dll,去掉前面的分号,并将此行移动到extension=php_exif.dll之前,使之首先加载*。
3.找到[exif]段,把下面语句的分号去掉。
;exif.encode_unicode = ISO-8859-15
;exif.decode_unicode_motorola = UCS-2BE
;exif.decode_unicode_intel = UCS-2LE
;exif.encode_jis =
;exif.decode_jis_motorola = JIS
;exif.decode_jis_intel = JIS
最后保存,再重启一下php就可以了
剩下都步骤和前面的第十五关相同,这里我就不多赘述了
使用蚁剑进行测试连接
第17关(二次渲染+图片马/条件竞争+文件包含)
二次渲染
什么是二次渲染?简单来说就是我们上传的图片后,服务器会进行二次处理(包括尺寸、格式等等)。百度百科是这样回答的:
先上传一个zzz.gif的图片马,然后再下载经过渲染过的图片马(23917.gif)
使用010editor软件进行对比两个文件(我之前已将在zzz.gif里面插入有一句话木马了)
点击23917.gif右键打开方式,选择010editor打开,打开后选择工具-比较文件
然后进行比较,我们通过观察发现不同的地方,并且我们插入的一句话,在下载的gif里面已经被打乱了,没有找到
找到两个gif相同的地方,我们把一句话复制,然后在23917.gif中插入一句话,保存,上传23917.gif文件
上传成功后,我们下载新的gif,用010打开,发现一句话已经插入进去
我们接下来就可以使用蚁剑进行连接,url的构造和前面的一样,但我这无论怎么弄都没成功连接上,看了其他大佬的wp,他们也是这样做的,能连接上,方法大概是这样了,如果有连接上的告诉我一声(对了,这里如果使用其他格式的图片会比较难弄,所以我就没弄)