查看源码,发现这一关的代码多了二次渲染。
二次渲染
在上传文件后,网站会对图片进行二次处理(格式、尺寸,保存,删除 要求等),服务器会把里面的内容进行替换更新,处理完成后,根据原有的图片生成一个新的图片(标准化)并放到网站对应的标签进行显示。
实验过程
注:本次实验使用到了010 editor,可自行去官网下载
gif格式
将一个gif格式图片上传到靶场。上传成功后,将二次渲染的图片复制到本地
打开phpstudy→其他选项菜单→网站根目录。
在upload文件夹下找到二次渲染后的文件,将其复制到本地
右键点击复制到本地的gif文件→打开方式找到010 editor
点击tool→compare files
选择原gif上传文件和经过二次渲染之后的gif文件,点击compare进行比较
其中标蓝的是两者相同的地方,标红的是不同的地方
思路一:在原文件中找到标蓝的部分,选择任意一端标蓝部分(选较大的部分),在尽量靠近蓝色末端的部分插入一句话木马(末尾不容易被渲染掉)ctrl+s保存后,将gif文件重新上传靶场
思路二:在二次渲染之后的文件中插入一句话木马(与思路一插入方法一致)。文件经过一次二次渲染后再上传不会重新被渲染。
可上传成功。右键→新建标签页打开图像
可获得上传文件的url。打开文件包含漏洞,对url进行拼接包含(详见第十四关教程)
最后用蚁剑连接(这是我重新做了一遍后的图,文件名和上面不一样)