厦门服务器租用>业界新闻>web服务器怎么做好上传漏洞安全

web服务器怎么做好上传漏洞安全

发布时间:2020/5/29 14:46:43    来源: 纵横数据

web服务器怎么做好上传漏洞安全【艾娜】

Web应用程序通常会有文件上传的功能,例如,在BBS发布图片、在个人网站发布Zip压缩包、在招聘网站上发布DOC格式简历等。只要Web应用程序允许上传文件,就有可能存在文件上传漏洞。

1. 解析漏洞

攻击者在利用上传漏洞时,通常会与Web容器(IIS、Nginx、Apache、Tomc等at)的解析漏洞配合在一起

  • IIS解析漏洞:当建立*.asa、*.asp格式的文件夹时,其目录下的任意文件都将被IIS当作asp文件来解析,在浏览器打开文件时,内容就会直接暴漏在浏览器里,上传的话,危险脚本就会运行起来,达到攻击的目的;
    如:http://127.0.0.1/parsing.asp/test.txt

  • Apache解析漏洞;

  • PHP CGI解析漏洞;

2. 绕过上传漏洞

程序员在防止上传漏洞时可以分为以下两种:

  • 客户端检测:客户端使用JavaScript检测,在文件未上传时,就对文件进行验证;
    因此,绕过客户端的检测来达到攻击的方式有以下两种:

(1)使用FireBug:找到html源代码里面的Form表单,将onsubmit事件删除,JavaScript上传验证将会失效。
(2)中间人攻击:使用Burb Suite则是按照正常的流程通过JavaScript验证,然后在传输中的HTTP层做手脚。(在上传时使用Burb Suite拦截上传数据,修改文件扩展名,就可以绕过客户端验证)。

注意:任何客户端验证都是不安全的。客户端验证是防止用户输入错误,减少服务器开销,而服务器端验证才可以真正防御攻击者。

  • 服务端检测:服务端脚本一般会检测文件的MIME类型,检测文件扩展名是否合法,甚至有些程序员检测文件中是否嵌入恶意代码。
    主要有以下几种,但也有存在漏洞的可能:

(1)白名单与黑名单验证
在上传文件时,大多数程序员会对文件扩展名检测,验证文件扩展名通常有两种方式:白名单与黑名单。

黑名单过滤方式:是一种不安全的过滤方式,黑名单定义了一系列不允许上传的文件的扩展名,服务器端接收文件后,与黑名单扩展名对比,如果发现文件扩展名与黑名单里的扩展名匹配,则认为文件不合法。举例子:

$BlackList = array('asp', 'php', 'jsp', 'php5', 'asa', 'aspx'); // 黑名单//然而并不能很好的防御: .cer文件并没有在黑名单里,则,可以通过验证,因此是无法防御上传漏洞的。

白名单过滤方式:与黑名单恰恰相反,定义一系列允许上传的扩展名,白名单拥有比黑名单更好的防御机制。举例子:

$WhiteList = array('rar', 'jpg', 'png', 'bmp', 'gif', 'doc'); // 白名单// 然而并不能很好的防御:// 例如:Web容器为IIS 6.0,攻击者把木马文件改名为pentest.asp;1.jpg上传,此时的文件为jpg格式,从而可以顺利通过验证,而IIS 6.0却会把pentest.asp;1.jpg当作asp脚本程序来执行,最终攻击者可以绕过白名单的检测,并且执行木马程序。// 白名单机制仅仅是防御上传漏洞的第一步。

(2)MIME验证
MIME类型用来设定某种扩展名文件的打开方式,当具有该扩展名的文件被访问时,浏览器会自动使用指定的应用程序来打开。如GIF图片MIME为image/gif,css文件MIME类型为text/css。

// 开发人员经常会对文件MIME类型做验证,PHP代码如下:if ($_FILES['file']['type'] == 'image/jpg'){ // 判断是否是jpg格式
    // ...}

因此,如果上传PHP文件时,并使用Burp Suite拦截查看MIME类型,可以发现PHP文件的MIME类型为application/php,而上面代码中会判断文件类型是否为image/jpg,显然这里无法通过验证。
但是在拦截的时候可以将HTTP请求中的content-Type更改为image/jpg类型,这样即可通过程序验证,达到攻击的目的。

(3)目录验证
再文件上传时,程序员通常允许用户将文件放到指定的目录中,然而有些Web开发人员为了让代码更“健壮”,通常会做一个动作,如果指定的目录存在,就将文件写入目录中,不存在则先建立目录,然后再写入文件。

攻击方式:通过使用工具将普通的文件夹名称改为.asp格式的目录,称为畸形文件夹,然后提交一句话图片木马文件,即上传成功后,这个网页木马就会被解析,从而使下攻击。

(4)截断上传攻击
也是使用工具进行拦截更改。
截断上传攻击在ASP程序中最常见,在PHP、JSP也会存在这样的攻击问题。

3. 文本编辑器上传漏洞

常见的文本编辑器有CKEditor、Ewebeditor、UEditor、KindEditor、XHeditor等。这类编辑器的功能都是非常类似的,比如都有图片上传、视频上传、远程下载等功能,这类文本编辑器也称为副文本编辑器。

使用此类编辑器减少了程序开发的时间,但是却增加了许多安全隐患,比如:使用CKEditor编辑器的有10万个网站,如果CKEditor爆出一个GetShell漏洞,那么着10万个网站都因此受到牵连。主要的漏洞体现在以下几种:
(1)敏感信息暴露。
(2)黑名单策略错误:黑名单有漏掉的扩展名。
(3)使用Burp Suite拦截修改,达到任意文件都可以上传。


【修复上传漏洞】

经过前面分析上传漏洞之后,我们知道上传漏洞最终的形成原因主要有以下几点:

  • 目录过滤不严,攻击者可能建立畸形目录;

  • 文件未重命名,攻击者可能利用Web容器解析漏洞。

因此,上传文件时需要做到以下几个步骤:
(1)接收文件及其文件临时路径。
(2)获取扩展名与白名单做对比,如果没有匹配到,则退出程序。
(3)对文件进行重命名,防止web容器解析漏洞。

上传漏洞完全可以避免,仅仅需要做到:【对路径进行验证】、【对文件进行随机重命名】。

-------------------------------------------
纵横数据 国内高防御服务器租用 美国高防御服务器租用 欢迎联系在线客服  QQ 4001886560  482986990

相关推荐

厦门移动显卡服务器的内存和硬盘大小各是多少?机房在哪里?

厦门移动显卡服务器的带宽和显卡内存各是多少?

厦门移动显卡服务器的CPU和显卡型号各是那种?

厦门移动显卡服务器是共享IP还是独立IP呢?

使用国内与境外云服务器哪家好呢?

你们公司的美国站群服务器的内存、带宽、硬盘、IP数和CPU等参数怎么样?

你好,请问你们的美国站群服务器有多少个IP呢?

你们公司性价比最好的美国站群服务器参数怎么样呢?

国内哪个地区有可以免备案的服务器呢?

厦门云服务器与轻量云应用有什么区别?

推荐租用的香港云主机的配置参数是多少?价格多少钱一年?

香港云主机租用多少钱一个月?租用香港云主机的价格配置!

购买香港云主机需要多少钱?租用香港云主机的配置和价格介绍!

香港云主机租用价格多少钱?推荐购买香港云主机的配置!

香港云主机租用一个月多少钱?购买香港云主机的价格配置!

租用香港站群服务器需要注意什么?购买香港站群服务器的价格是多少?

怎么选择香港站群服务器?香港站群服务器租用配置推荐!

租用香港站群服务器有哪些优势?购买香港站群服务器价格多少钱一个月?配置怎么样?

香港站群服务器租用购买要如何选择,推荐几款香港站群服务器配置

选择香港站群服务器租用需要考虑哪些因素?香港站群服务器配置推荐!

在线客服
微信公众号
免费拨打400-1886560
免费拨打0592-5580190 免费拨打 400-1886560 或 0592-5580190
返回顶部
返回头部 返回顶部