突破upload-labs19-20:利用PHP绕过文件名限制上传漏洞

需积分: 0 31 下载量 96 浏览量 更新于2024-08-04 收藏 538KB DOCX 举报
在"upload-labs19-20以及总结1"的文件中,主要探讨的是如何在PHP环境下的Web应用程序安全测试中利用上传漏洞进行渗透。此关卡的挑战在于利用上传功能来绕过服务器端的安全限制。 首先,上传过程允许用户自定义文件名(save_name参数),但服务器端有一个预设的黑名单,列出了一组禁止的文件扩展名,如php、html、asp等。这些扩展名被用于检查用户上传的文件是否属于不允许的类型。然而,值得注意的是,黑名单中的文件扩展名全部是小写形式,这为绕过规则提供了可乘之机。 步骤一:直接上传PHP文件。玩家需要利用这个漏洞,将上传的文件命名为"PHP"(或者使用其他不在黑名单内的伪装后缀,但在这个例子中直接使用PHP最为明显),以此避开服务器的文件类型检查。 步骤二:抓包分析。通过网络分析工具(如Wireshark或Fiddler),可以查看HTTP请求,确认提交的参数和文件名。观察到filename字段通常表示原始文件名,而save_name字段则是用户传递的文件名,这里就是我们用来绕过的关键参数。 步骤三:验证上传结果。上传文件后,页面会显示上传成功,此时需要通过浏览器访问上传的文件,如果能正常访问,就说明绕过策略生效。需要注意的是,这并不是唯一的方法,可能还有其他的路径或技巧可以利用。 这种类型的漏洞,由于服务器只关注文件名的后缀,而不深入检查文件内容,对于攻击者来说是一个常见的利用点。通过这种手法,攻击者可以隐藏恶意代码,例如一句话木马,使其看起来像是合法的PHP文件,从而避开服务器的常规安全措施。这提醒我们在开发Web应用时,不仅要关注文件类型,还要对上传内容进行深度检查和验证,以防止此类漏洞的发生。