这篇文章的内容主要围绕File Upload漏洞的示例分析进行讲述,文章内容清晰易懂,条理清晰,非常适合新手学习,值得大家去阅读。感兴趣的朋友可以跟随小编一起阅读吧。希望大家通过这篇文章有所收获!
前
言
作为测试人员,我们常常听到“安全测试”这个词,但鲜有人真正做过安全测试。从我们的职责“保障质量”角度来说,说是一种“失职”也不为过。那么安全测试是什么,究竟怎么进行安全测试?希望本文能起到抛砖引玉的作用。
文件上传漏洞是什么?
一个未经严格验证的系统中会存在各种各样的漏洞,同理,也对应有各种各样的漏洞监测手段。今天我们说一说最常见的一种:文件上传漏洞的检测。
在今天的web应用程序中,支持文件的上传是一种常见的要求,因为这有助于提升业务效率。但随之也带来很多风险。如果文件上传的接口存在漏洞,那么攻击者就可以借助这个漏洞上传一个可执行的文件到服务器并执行,然后获取一个特定的权限,或进行一项危及服务器的行为。
这里上传的文件可以是木马、病毒、恶意脚本或者WebShell等。
为什么会产生文件上传漏洞?
File Upload(文件上传)漏洞,是由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致用户可以越过其本身权限向服务器上传可执行的动态脚本文件。打个比方来说,如果使用 windows 服务器并且以 asp 作为服务器端的动态网站环境,那么网站的上传功能就不能允许用户上传 asp 类型的文件,否则用户上传一个 webshell,服务器上的文件就可以被他任意更改了。因此文件上传漏洞带来的危害常常是毁灭性的,Apache、Tomcat、Nginx等都曝出过文件上传漏洞。
示例
1、准备开源工具:DVWA
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),可以轻易在服务器上执行
8、文件上传(File Upload)漏洞的主要防范措施:
(1)限制上传文件的类型(针对第5步中上传的PHP文件)、
(2)限制上传文件的大小、
(3)隐藏文件路径(上面截图中可以轻易获取上传文件在服务器端保存的位置,为文件包含攻击提供便利)、
(4)检查上传文件中是否含有恶意信息(如检查图片文件是否正常编码开头结尾,避免第6步中上传的图片文件含有恶意脚本)。
感谢你的阅读,相信你对“File Upload漏洞的示例分析”这一问题有一定的了解,快去动手实践吧,如果想了解更多相关知识点,可以关注亿速云网站!小编会继续为大家带来更好的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。