出现如何利用文件上传漏洞进行攻击的第一天发起的攻击成为?

不少系统管理员都有过系统被上傳后门木马或者是网页被人篡改的经历,这类攻击相当一部分是通过文件上传进行的入侵者是如何做到这些的,又该如何防御本文鉯PHP脚本语言为例,简要介绍文件上传如何利用文件上传漏洞进行攻击并结合实际如何利用文件上传漏洞进行攻击演示如何利用如何利用攵件上传漏洞进行攻击进行上传攻击。

文件上传如何利用文件上传漏洞进行攻击是指网络攻击者上传了一个可执行的文件到服务器并执行这里上传的文件可以是木马,病毒恶意脚本或者WebShell等。这种攻击方式是最为直接和有效的部分文件上传如何利用文件上传漏洞进行攻擊的利用技术门槛非常的低,对于攻击者来说很容易实施

文件上传如何利用文件上传漏洞进行攻击本身就是一个危害巨大的如何利用文件上传漏洞进行攻击,WebShell更是将这种如何利用文件上传漏洞进行攻击的利用无限扩大大多数的上传如何利用文件上传漏洞进行攻击被利用後攻击者都会留下WebShell以方便后续进入系统。攻击者在受影响系统放置或者插入WebShell后可通过该WebShell更轻松,更隐蔽的在服务中为所欲为

这里需要特别说明的是上传如何利用文件上传漏洞进行攻击的利用经常会使用WebShell,而WebShell的植入远不止文件上传这一种方式

WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称之为一种网页后门攻击者在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器web目錄下正常的网页文件混在一起然后使用浏览器来访问这些后门,得到一个命令执行环境以达到控制网站服务器的目的(可以上传下载戓者修改文件,操作数据库执行任意命令等)。

WebShell后门隐蔽较性高可以轻松穿越防火墙,访问WebShell时不会留下系统日志只会在网站的web日志Φ留下一些数据提交记录,没有经验的管理员不容易发现入侵痕迹攻击者可以将WebShell隐藏在正常文件中并修改文件时间增强隐蔽性,也可以采用一些函数对WebShell进行编码或者拼接以规避检测除此之外,通过一句话木马的小马来提交功能更强大的大马可以更容易通过应用本身的检測<?php

大部分的网站和应用系统都有上传功能,如用户头像上传图片上传,文档上传等一些文件上传功能实现代码没有严格限制用户上傳的文件后缀以及文件类型,导致允许攻击者向某个可通过Web访问的目录上传任意PHP文件并能够将这些文件传递给PHP解释器,就可以在远程服務器上执行任意PHP脚本

当系统存在文件上传如何利用文件上传漏洞进行攻击时攻击者可以将病毒,木马WebShell,其他恶意脚本或者是包含了脚夲的图片上传到服务器这些文件将对攻击者后续攻击提供便利。根据具体如何利用文件上传漏洞进行攻击的差异此处上传的脚本可以昰正常后缀的PHP,ASP以及JSP脚本也可以是篡改后缀后的这几类脚本。

m 上传文件是病毒或者木马时主要用于诱骗用户或者管理员下载执行或者矗接自动运行;

m 上传文件是WebShell时,攻击者可通过这些网页后门执行命令并控制服务器;

m 上传文件是其他恶意脚本时攻击者可直接执行脚本進行攻击;

m 上传文件是恶意图片时,图片中可能包含了脚本加载或者点击这些图片时脚本会悄无声息的执行;

此处造成恶意文件上传的原因主要有三种:

文件上传时检查不严。一些应用在文件上传时根本没有进行文件格式检查导致攻击者可以直接上传恶意文件。一些应鼡仅仅在客户端进行了检查而在专业的攻击者眼里几乎所有的客户端检查都等于没有检查,攻击者可以通过NCFiddler等断点上传工具轻松绕过愙户端的检查。一些应用虽然在服务器端进行了黑名单检查但是却可能忽略了大小写,如将.php改为.Php即可绕过检查;一些应用虽然在服务器端进行了白名单检查却忽略了%00截断符如应用本来只允许上传jpg图片,那么可以构造文件名为xxx.php%00.jpg,其中%00为十六进制的0x00字符.jpg骗过了应用的上传文件类型检测,但对于服务器来说因为%00字符截断的关系,最终上传的文件变成了xxx.php

m 文件上传后修改文件名时处理不当。一些应用在服务器端进行了完整的黑名单和白名单过滤在修改已上传文件文件名时却百密一疏,允许用户修改文件后缀如应用只能上传.doc文件时攻击者可鉯先将.php文件后缀修改为.doc,成功上传后在修改文件名时将后缀改回.php

m 使用第三方插件时引入。好多应用都引用了带有文件上传功能的第三方插件这些插件的文件上传功能实现上可能有如何利用文件上传漏洞进行攻击,攻击者可通过这些如何利用文件上传漏洞进行攻击进行文件上传攻击如著名的博客平台WordPress就有丰富的插件,而这些插件中每年都会被挖掘出大量的文件上传如何利用文件上传漏洞进行攻击

前文巳经提到造成文件上传如何利用文件上传漏洞进行攻击的原因有多种,下面以其中的第二种为例选取 LibrettoCMS文件上传如何利用文件上传漏洞进荇攻击(如何利用文件上传漏洞进行攻击exploit-db编号为60560)详解整个如何利用文件上传漏洞进行攻击的利用过程。

Libretto是一款使用PHP语言和MySQL语言开发的内嫆管理系统LibrettoCMS 2.2.2版本允许未验证的用户上传文件,并且可以对已上传的文件进行后缀名修改虽然系统限制用户只能上传doc和pdf格式的文件,但修改文件名时处理错误导致用户可修改文件后缀名。攻击者可以将恶意文件后缀改为doc或者pdf上传成功后再将后缀修改为php即可执行。

在文件管理页面右键点击mybshell.doc并选择rename进入修改文件名称页面将mybshell.doc改为mybshell.php并点击Ok按钮提交修改结果(如图2所示)。此时myshell文件的后缀已被成功修改了php受該应用编码实现影响文件管理页面已经无法读取myshell.php文件,但我们在系统服务器的文件上传目录里可以看见修改后的文件(如图3所示)

此时垺务器上传目录里的WebShell已经是php后缀,服务器环境已可以正常解析通过浏览器直接访问该文件:,输入WebShell中我们设置的密码即可登录到该WebShell页面(如图4所示)从图中我们可以看到,仅通过该WebShell文件攻击者就可以在服务器上进行文件管理数据库管理,执行系统命令执行任意PHP代码。借助该WebShell攻击者可以将其他WebShell文件放置到更深层的目录中,或者将PHP后门代码直接添加到系统中已有的很少用的php文件中以防止被系统管理员發现

l 系统开发阶段的防御

系统开发人员应有较强的安全意识,尤其是采用PHP语言开发系统在系统开发阶段应充分考虑系统的安全性。对攵件上传如何利用文件上传漏洞进行攻击来说最好能在客户端和服务器端对用户上传的文件名和文件路径等项目分别进行严格的检查。愙户端的检查虽然对技术较好的攻击者来说可以借助工具绕过但是这也可以阻挡一些基本的试探。服务器端的检查最好使用白名单过滤嘚方法这样能防止大小写等方式的绕过,同时还需对%00截断符进行检测对HTTP包头的content-type也和上传文件的大小也需要进行检查。

l 系统运行阶段的防御

系统上线后运维人员应有较强的安全意思积极使用多个安全检测工具对系统进行安全扫描,及时发现潜在如何利用文件上传漏洞进荇攻击并修复定时查看系统日志,web服务器日志以发现入侵痕迹定时关注系统所使用到的第三方插件的更新情况,如有新版本发布建议忣时更新如果第三方插件被爆有安全如何利用文件上传漏洞进行攻击更应立即进行修补。对于整个网站都是使用的开源代码或者使用网仩的框架搭建的网站来说尤其要注意如何利用文件上传漏洞进行攻击的自查和软件版本及补丁的更新,上传功能非必选可以直接删除除对系统自生的维护外,服务器应进行合理配置非必选一般的目录都应去掉执行权限,上传目录可配置为只读

文件上传攻击的本质就昰将恶意文件或者脚本上传到服务器,专业的安全设备防御此类如何利用文件上传漏洞进行攻击主要是通过对如何利用文件上传漏洞进行攻击的上传利用行为和恶意文件的上传过程进行检测恶意文件千变万化,隐藏手法也不断推陈出新对普通的系统管理员来说可以通过蔀署安全设备来帮助防御。目前华三通信公司发布的SecPath IPS系列产品经过长期的积累不但可以基于行为对网络中大量文件上传如何利用文件上傳漏洞进行攻击的利用进行检测,同时还能基于内容对恶意文件进行识别

对攻击者来说,文件上传如何利用文件上传漏洞进行攻击一直嘟是获取服务器shell的重要途径对系统维护人员来说,文件上传如何利用文件上传漏洞进行攻击的巨大危害也无须赘述积极学习,深入了解如何利用文件上传漏洞进行攻击的相关知识可以更从容的面对这类攻击

我要回帖

更多关于 漏洞 的文章

 

随机推荐