【白帽子】文件上传漏洞

2018-02-08  本文已影响0人  queena_

0x01 概述

文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本文件获得了执行服务器端命令的能力。
在大多数情况下,文件上传漏洞一般都是指“上传Web脚本能够被服务器解析”的时候,也就是通常所说的webshell的问题

需要满足几个条件:

0x02 绕过文件上传检查功能

在C、PHP等语言的常用字符串处理函数中,0x00被认为是终止符

比如应用原本只允许上传JPG图片,那么可以构造文件名(需要修改POST包)为xxx.php[\0].jpg
其中[\0]为十六进制的0x00字符

有时还会通过判断上传文件的文件头来验证文件的类型(浏览器的MIME Sniff实际上就是通过读取文件的前256个字节,来判断文件的类型)
这种情况,可以伪造一个合法的文件头,而将真实的PHP等脚本代码附在合法的文件头之后

0x03 Apache文件解析问题

Apache(1.x和2.x)对于文件名的解析是从后往前解析的,直到遇见一个Apache认识的文件类型为止
这些文件类型定义在Apache的mime.types文件中
phpshell.php.rar.rar.rar

0x04 IIS文件解析问题

在许多Web server中,默认禁用了,或者是对能够上传的文件类型做了严格限制

但在IIS中,如果目录支持写权限,同时开启了WebDav,则会支持PUT方法,再结合MOVE方法,就能够将原本只允许文本文件改成脚本文件,从而执行webshell

步骤:

0x05 利用上传文件钓鱼

利用文件上传功能,钓鱼者可以先将包含了HTML的文件(比如一张图片)上传到目标网站,然后通过传播这个文件的URL进行钓鱼,则URL中不会出现钓鱼地址,更具有欺骗性

上一篇 下一篇

猜你喜欢

热点阅读