Web安全—文件上传漏洞

本文阅读 6 分钟

文件上传漏洞

提要:文件上传漏洞属于服务端漏洞,可归纳为文件操作类型中的漏洞。 漏洞简介:文件上传漏洞是Web安全中对 数据与代码分离原理的一种攻击方法,顾名思义,攻击者上传了一个可执行文件(木马,病毒,恶意脚本,WebShell等到服务器执行,并最终获得网站控制权限的高危漏洞。 img 漏洞危害: 文件上传属于高危漏洞,相比于SQL注入,XSS,风险更大,其危害的是整个应用系统,如果目标网站存在文件上传漏洞: 1,如果攻击者上传的是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,则会产生代码执行。 2,如果上传的是Flash的策略文件crossdomain.xml,攻击者则可以控制Flash在该域下的行为。 3,如果上传的是病毒,木马文件,攻击者则可以诱骗用户下载并执行恶意文件。 4,如果上传了一个Webshell到服务器上,那么整个应用服务器则可能被攻击者进行控制或致使系统完全崩溃。 漏洞原理: 大部分的网站或应用系统都存在文件上传功能,如果未对上传文件的后缀合法性进行校验或仅进行前端的JS层验证,导致使用者可以上传任意格式文件到目标服务器(JSP,ASP,PHP,ASPX)等,那就很大概率会造成文件上传漏洞的发生,导致恶意程序被执行,危害目标应用服务器。

漏洞利用绕过:

img 客户端绕过: 1,JavaScript检测 绕过:禁止JS或者Burp代理工具抓包修改参数 服务端绕过: 1,Content-Type字段绕过(MIME类型检测) 绕过:使用Burp代理工具修改Content-Type绕过 2,服务端path参数检测 3,服务端文件扩展名检测 绕过: 文件名大小写绕过(PhP,Asp等) 后缀名字双写嵌套(phphpp,asaspp等) 利用系统对一些特殊文件名做默认修改的系统特性绕过(.htaccess文件) 可以利用asp程序中的漏洞,使用截断字符绕过 利用不在黑名单中但可以执行的扩展名绕过(php3,php4) 利用解析/包含漏洞配合上传一个代码注入 的白名单进行绕过4 4,服务端内容检测 绕过原理:通过在文件中添加正常文件的标识或其他关键字符绕过 img 文件上传漏洞通常和解析漏洞一起配合使用,解析漏洞可参考 Web安全深度剖析—上传漏洞

文件上传漏洞防御:

系统运行时的防御: 1,文件上传的目录权限设置为不可执行。只要web容器无法解析该目录下面的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响。 2,文件扩展名使用白名单机制判断。在判断文件类型时,使用白名单方式,黑名单的方式已经无数次被证明是不可靠的。此外,对于图片的处理,可以使用压缩函数或者resize函数,在处理图片的同时破坏图片中可能包含的HTML代码。 3,使用随机数改写文件名和文件路径。文件上传如果要执行代码,则需要用户能够访问到这个文件。如果应用了随机数改写了文件名和路径,将极大地增加攻击的成本。再来就是像shell.php.rar.rar和crossdomain.xml这种文件,都将因为重命名而无法攻击。 4,单独设置文件服务器的域名。由于浏览器同源策略的关系,一系列客户端攻击将失效,比如上传crossdomain.xml、上传包含Javascript的XSS利用等问题将得到解决。 5,使用安全设备防御。文件上传攻击的本质就是将恶意文件或者脚本上传到服务器,专业的安全设备防御此类漏洞主要是通过对漏洞的上传利用行为和恶意文件的上传过程进行检测。恶意文件千变万化,隐藏手法也不断推陈出新,对普通的系统管理员来说可以通过部署安全设备来帮助防御。

参考学习链接: 文件上传漏洞攻击与防范方法

本文为互联网自动采集或经作者授权后发布,本文观点不代表立场,若侵权下架请联系我们删帖处理!文章出自:https://blog.csdn.net/weixin_44431280/article/details/122797880
-- 展开阅读全文 --
KillDefender 的 Beacon 对象文件 PoC 实现
« 上一篇 02-09
Web安全—逻辑越权漏洞(BAC)
下一篇 » 03-13

发表评论

成为第一个评论的人

热门文章

标签TAG

最近回复