本文致力于探索利用网站漏洞来上传非法文件的方法。
基本技术
下面是一些绕过文件上传限制的基本技术。其中的漏洞与网站使用的后台无关,而是由于网页的编写者没有进行完全和有效的限制才产生的漏洞。
类型1:前端验证
某些网站采用前端验证的方式限制用户上传文件,这时我们只需去除前端验证机制即可突破限制,完成上传。
例如:前端代码限制上传文件的类型只能为图片,因此我们上传php
文件就会失败。使用firebug
修改前端代码,删除验证的代码段,再次上传,即可成功。
类型2:MIME验证
对于上传的文件,上传时都会指明上传文件的类型,即MIME信息。如果服务器验证的是MIME,可以通过修改MIME信息进行绕过上传。
例如:后台要求用户上传文件不能使纯文本,验证MIME信息,即上传的MIME信息不得是plain/text
。当我们在上传文件的时候,我们给服务器提供的是文件名、文件内容和MIME信息,服务器根据这些信息生成文件。所以当我们上传一个php
文件时,将MIME改为图片的MIME,服务器就不会阻止文件的上传,从而正确生成一个看似不是纯文本文件的php
文件。
类型3:文件扩展名漏洞
这类漏洞是由于后台判断的扩展名不全才发生的。
例如:服务器会将以php php2 php3 php4 php5
为后缀名的文件全部按照php
文件解析,其中的代码会被执行。但是某些后端判定并没有完全覆盖这些