pass 15 文件内容检测(getimagesize()校验)
上传一个图片马进行绕过
pass 16 文件内容检测(exif_imagetype()绕过)
这关有问题
pass 17 文件内容检测(二次渲染)
本关重新渲染了图片
对不是或含有木马的图片进行屏蔽
先上传一个图片
不会
pass 18 逻辑漏洞(条件竞争)
可以看到,该源码功能大概是,当我们上传一个文件后,文件会先上传到服务器,然后再判断该文件类型是否含在白名单中(jpg、png、gif),如果是,则会将该文件重命名后放在服务器中,如果不是,则会将该文件删除掉。那么我们可以知道,文件是先被上传到了服务器,而后才做判断之类的一系列操作,这样就存在条件竞争漏洞
pass 19逻辑漏洞(条件竞争-图片马)
漏洞描述:后缀名做了白名单判断,然后会一步一步检查文件大小,文件是否存在等等,将文件上传后,对文件重新命名,同样存在条件竞争的漏洞。可以不断利用burp发送上传图片马的数据包,由于条件竞争,程序会出现来不及rename的问题,从而上传成功
区别于pass18,本关需要使用图片马
pass 20 逻辑漏洞(小数点绕过)
pass 21逻辑漏洞(数组绕过)
end()函数将数组内部指针指向最后一个元素,并返回该元素的值(如果成功)
reset()函数是数组内部指针指向第一个,并返回该元素的值(如果成功)
先抓包构造数组
首先改掉MIME类型绕过第一步白名单
file_name改成jpg绕过白名单
save_name要做成一个数组,而且数组的最后一个值是jpg等
上传成功