0x00 前言
文件上传是一个很常见的功能,文件上传漏洞也比较普遍,原理简单,造成的危害却很大,是一个入门级别的漏洞。这篇文章主要针对文件上传漏洞中的 黑名单检测绕过 这个点,结合upload-labs,做一个较为全面的总结。
upload-labs
upload-labs是一个使用php语言编写的,专门收集渗透测试和CTF中遇到的各种上传漏洞的靶场。旨在帮助大家对上传漏洞有一个全面的了解。目前一共20关,每一关都包含着不同上传方式。
黑名单思想
利用黑名单的思想来防御文件上传漏洞是一种很常见的做法,比如upload-labs的第三关
但是黑名单思想很难把所有可能引发漏洞的威胁给过滤掉,而且随着时代发展还有可能有新的攻击方式产生,所以黑名单思想是一种不够安全的思想。
Secure By Default 原则
在设计安全方案时,最基本也就是最重要的原则就是“Secure by Default” 。在做任何安全设计时,都要牢牢记住这个原则。一个方案设计得是否足够安全,与有没有应用这个原则有很大的关系。实际上,“Secure by Default” 原则,也可归纳为白名单、黑名单的思想。如果更多地使用白名单,那么系统会变得更安全。
——《白帽子讲Web安全》
0x01 换用文件后缀(Pass-03)
能被Web容器解析的文件后缀(简单来说就是能被当做php文件来执行),除了我们最常见的 .php以外还有很多,比如php1、php2、php3、php4、php5