🔎 看图说话:文件上传(File Upload)漏洞示例
2018-09-07 本文已影响38人
9016
1、File Upload(文件上传)漏洞,由于对用户上传文件的类型、内容没有进行严格的审查,使得攻击者可以通过上传含有执行脚本的木马文件操纵服务器;
2、准备PHP脚本文件FI_GET_INI.php,内含一行脚本<?php echo phpinfo(); ?>;
3、准备jpeg文件,Desert.jpeg原为windows自带图片,执行CMD命令copy Desert.jpeg+FI_GET_INI.php Desert.jpeg,将<?php echo phpinfo(), ?>追加在图片Desert.jpeg最后;
4、以下为实际场景实验,打开靶机页面:
5、上传FI_GET_INI.php,成功,说明系统没有对文件类型进行检查,接受PHP脚本文件上传:
6、上传Desert.jpeg,成功,使用文本编辑器打开服务器接收上传文件目录中Desert.jpeg,发现<?php echo phpinfo() ?>在图片文件中,说明系统没有检查文件内容,接受含有恶意脚本文件上传:
7、第5步、第6步上传的文件,配合文件包含漏洞(File Inclusion),可以轻易在服务器上执行(可参考《看图说话:文件包含(File Inclusion)漏洞示例》);
8、文件上传(File Upload)漏洞的主要防范措施:
(1)限制上传文件的类型(针对第5步中上传的PHP文件)、
(2)限制上传文件的大小、
(3)隐藏文件路径(上面截图中可以轻易获取上传文件在服务器端保存的位置,为文件包含攻击提供便利)、
(4)检查上传文件中是否含有恶意信息(如检查图片文件是否正常编码开头结尾,避免第6步中上传的图片文件含有恶意脚本)。