1、前置知识
1、什么是二次渲染
二次渲染就是服务器会将我们上传的文件进行处理(比如说宽高、大小等等),处理完毕之后,才会进行显示
所以说,二次渲染会改变文件内容
2、如何判断服务器进行了二次渲染
可以上传一个正常的图片,上传完成之后,从网页上下载该图片,再与原图进行比对
3、如何绕过二次渲染
我们可以上传图片马,该图片马经过二次渲染之后,图片中的后门代码不会被处理掉;再利用文件包含漏洞进行包含即可
2、实验
1、实验环境
靶场:upload-labs的Pass-17
工具:010 Editor
2、测试
(1) 将gif植入后门
(2) 上传到服务器
(3) 从网页下载该图片
(4) 查看该图片发现后门代码没了
(5)下一步寻找两个图片之间那里没有变
从菜单栏上点击工具=》点击比较文件(两个gif文件要同时打开)
进行比较
得到(注:若没有下图的框,看看右边的缩小框有没有)
找到为更改的位置,若我们在此处写后门,则后门就不会被删除
写入后门
(6)上传test.gif:
成功触发
3、总结
(1) 由于二次渲染可能会删除我们的后门,所以我们想办法找出该文件不会更改的位置,在此处写入后门即可;
(2) 本文只演示了gif文件其实png等文件也可以,只是操作麻烦,如想了解可参考文章:【文件上传绕过】——二次渲染漏洞_二次渲染绕过-CSDN博客