文件上传漏洞是指:由于程序员未对上传的文件进行严格的验证和过滤,而导致的用户可以越过其本身权限向服务器上传可执行的动态脚本文件。如常见的
头像上传,图片上传,oa办公文件上传,媒体上传,允许用户上传文件的地方如果过滤不严格,恶意用户利用文件上传漏洞,上传有害的可以执行脚本文件到服务器中,可以获取服务器的权限,或进一步危害服务器。
非法用户可以上传的恶意文件控制整个网站,甚至是控制服务器,这个恶意脚本文件,又被称为webshell,上传webshell后门之后可查看服务器信息、目录、执行系统命令等。
文件上传的类型:
1、前端js绕过
在文件上传时,用户选择文件时,或者提交时,有些网站会对前端文件名进行验证,一般检测后缀名,是否为上传的格式。如果上传的格式不对,则d出提示文字。此时数据包并没有提交到服务器,只是在客户端通过js文件进行校验,验证不通过则不会提交到服务器进行处理。
2、修改content-type绕过
有些上传模块,会对http类型头进行检测,如果是图片类型,允许上传文件到服务器,否则返回上传失败,因为服务端是通过content-type判断类型,content-type在客户端可被修改。
3、绕黑名单
上传模块,有时候会写成黑名单限制,在上传文件的时获取后缀名,再把后缀名与程序中黑名单进行检测,如果后缀名在黑名单的列表内,文件将禁止文件上传。
4、htaccess重写解析绕过
上传模块,黑名单过滤了所有的能执行的后缀名,如果允许上传.htaccess。htaccess文件的作用是:可以帮我们实现包括:文件夹密码保护、用户自动重定向、自定义错误页面、改变你的文件扩展名、封禁特定IP地址的用户、只允许特定IP地址的用户、禁止目录列表,以及使用其他文件作为index文件等一些功能。
在htaccess里写入SetHandler
application/x-httpd-php则可以文件重写成php文件。要htaccess的规则生效,则需要在apache开启rewrite重写模块,因为apache是多数都开启这个模块,所以规则一般都生效。
5、大小写绕过
有的上传模块 后缀名采用黑名单判断,但是没有对后缀名的大小写进行严格判断,导致可以更改后缀大小写可以被绕过,如PHP、Php、phP、pHp。
这种情况通常出现在word和excel在同一文件夹压缩后QQ上传不了,提示有风险。此时在保存的时候修改保存类型,修改为97-2003文档即可解决该问题,详细步骤:
1、将文件先解压缩,如图所示(这里可以看到文件类型)。
2、然后点击其中一个文档,点击右边文件。
3、然后点击另存为,如图所示。
4、选择存储路径,如图所示(这里使用的是2013版的,根据自己的情况进行存储)。
5、然后在保存的时候修改保存类型,如图所示,修改为97-2003文档。
6、然后点击保存,有些保存会d出如下界面,点击确定即可。
7、保存后将原来类型的文件删掉即可,然后压缩再上传,即可解决“文件存在安全问题已制止上传”的问题。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)