百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>网页制作> web平安之文件上传破绽袭击与防范办法
分享文章到:

web平安之文件上传破绽袭击与防范办法

发布时间:09/01 来源:未知 浏览: 关键词:

未标题-8.png

一、 文件上传破绽与WebShell的关系

文件上传破绽是指网络攻击者上传了一个可施行的文件到效劳器并施行。这里上传的文件可以是木马,病毒,歹意足本或者WebShell等。这种攻击方式是最为直接和有效的,部分文件上传破绽的利用技术门槛非常的低,关于攻击者来说很容易实施。

文件上传破绽本身就是一个危害宏大的破绽,WebShell更是将这种破绽的利用无穷扩大。大多数的上传破绽被利用后攻击者都会留下WebShell以利便后续进入系统。攻击者在受影响系统放置或者插入WebShell后,可通过该WebShell更轻松,更隐藏的在效劳中力所能及。

这里需要特殊说明的是上传破绽的利用经常会使用WebShell,而WebShell的植入远不止文件上传这一种方式。

1 Webshell简介

WebShell就是以asp、php、jsp或者cgi等网页文件情势存在的一种命令施行环境,也可以将其称之为一种网页后门。攻击者在入侵了一个网站后,平常会将这些asp或php后门文件与网站效劳器web名目下正常的网页文件混在一起,然后使用阅读器来拜访这些后门,得到一个命令施行环境,以到达操纵网站效劳器的目的(可以上传下载或者修改文件,操纵数据库,施行任意命令等)。

WebShell后门隐藏较性高,可以轻松穿越防火墙,拜访WebShell时不会留下系统日志,只会在网站的web日志中留下一些数据提交记载,没有经历的治理员不容易发明入侵痕迹。攻击者可以将WebShell潜藏在正常文件中并修改文件时间增强隐藏性,也可以采纳一些函数对WebShell停止编码或者拼接以躲避检测。除此之外,通过一句话木马的小马来提交功效更强大的大马可以更容易通过利用本身的检测。<?php eval($_POST[a]); ?>就是一个最常见最原始的小马,以此为根基也出现了许多变种,如<script language="php">eval($_POST[a]);</script>等。

2 文件上传破绽道理

大部分的网站和利用系统都有上传功效,一些文件上传功效实现代码没有严厉限制会员上传的文件后缀乃至文件类型,致使同意攻击者向某个可通过Web拜访的名目上传任意PHP文件,并能够将这些文件传递给PHP说明器,就可以在长途效劳器上施行任意PHP足本。

当系统存在文件上传破绽时攻击者可以将病毒,木马,WebShell,其他歹意足本或者是包括了足本的图片上传到效劳器,这些文件将对攻击者后续攻击供给便当。按照详细破绽的差别,此处上传的足本可以是正常后缀的PHP,ASP乃至JSP足本,也可以是篡改后缀后的这几类足本。

上传文件是病毒或者木马时,主要用于拐骗会员或者治理员下载施行或者直接主动运转

上传文件是WebShell时,攻击者可通过这些网页后门施行命令并操纵效劳器

上传文件是其他歹意足本时,攻击者可直接施行足本停止攻击

上传文件是歹意图片时,图片中大概包括了足本,加载或者点击这些图片时足本会不知不觉的施行

上传文件是假装成正常后缀的歹意足本时,攻击者可借助当地文件包括破绽(Local File Include)施行该文件。如将bad.php文件改名为bad.doc上传到效劳器,再通过PHP的include,include_once,require,require_once等函数包括施行。

此处造成歹意文件上传的缘由主要有三种:

文件上传时检查不严。没有停止文件格局检查。一些利用仅仅在客户端停止了检查,而在专业的攻击者眼里几乎所有的客户端检查都等于没有检查,攻击者可以通过NC,Fiddler等断点上传工具轻松绕过客户端的检查。一些利用虽然在效劳器端停止了黑名单检查,但是却大概忽略了大小写,如将.php改为.Php即可绕过检查;一些利用虽然在效劳器端停止了白名单检查却忽略了%00截断符,如利用原本只同意上传jpg图片,那么可以结构文件名为xxx.php%00.jpg,其中%00为十六进制的0x00字符,.jpg骗过了利用的上传文件类型检测,但关于效劳器来说,由于%00字符截断的关系,终究上传的文件变成了xxx.php。

文件上传后修改文件名时处置不妥。一些利用在效劳器端停止了完全的黑名单和白名单过滤,在修改已上传文件文件名时却百密一疏,同意会员修改文件后缀。如利用只能上传.doc文件时攻击者可以先将.php文件后缀修改为.doc,成功上传后在修改文件名时将后缀改回.php。

使用第三方插件时引入。好多利用都援用了带有文件上传功效的第三方插件,这些插件的文件上传功效实现上大概有破绽,攻击者可通过这些破绽停止文件上传攻击。如闻名的博客平台WordPress就有丰硕的插件,而这些插件中每年都会被挖掘出大量的文件上传破绽。

3 文件上传攻击实例

前文已经提到造成文件上传破绽的缘由有多种,下面以其中的第二种为例,拔取 LibrettoCMS文件上传破绽(破绽exploit-db编号为60560)详解整个破绽的利用历程。

Libretto是一款使用PHP说话和MySQL说话开发的内容治理系统。LibrettoCMS 2.2.2版本同意未验证的会员上传文件,并且可以对已上传的文件停止后缀名修改。虽然系统限制会员只能上传doc和pdf格局的文件,但修改文件名时处置错误,致使会员可修改文件后缀名。攻击者可以将歹意文件后缀改为doc或者pdf,上传成功后再将后缀修改为php即可施行。

l 上传doc后缀的WebShell

拜访该系统的文件治理页面/plugins/pgrfilemanager/PGRFileManager.php,上传一个正常的doc文件,发明可以上传成功。编写一个PHP说话的WebShell后门,也可以从网上下载已有的WebShell,并将WebShell文件的后缀修改为doc,此处将myshell.php后门修改为myshell.doc。

预备好WebShell今后拜访PGRFileManager.php文件治理页面将myshell.doc上传到效劳器,如图1所示,doc后缀的myshell已经成功上传。此时通过阅读器拜访该doc格局的myshell是没法正常施行的。

20140828_1928681_image001_839582_30008_0.jpg

图1 mybshell.doc成功上传

l 将WebShell后缀改为php

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

20140828_1928682_image002_839582_30008_0.jpg

图2 将mybshell.doc修改为mybshell.php

20140828_1928683_image003_839582_30008_0.jpg

图3 效劳器里myshell后缀已改为php

l 施行Webshell

此时效劳器上传名目里的WebShell已经是php后缀,效劳器环境已可以正常解析,通过阅读器直接拜访该文件:http://192.168.20.174/vlun/Mylibretto/userfiles/myshell.php,输入WebShell中我们设定的密码即可登录到该WebShell页面(如图4所示)。从图中我们可以看到,仅通过该WebShell文件攻击者就可以在效劳器上停止文件治理,数据库治理,施行系统命令,施行任意PHP代码。借助该WebShell,攻击者可以将其他WebShell文件放置到更深层的名目中,或者将PHP后门代码直接增加到系统中已有的很少用的php文件中以防止被系统治理员发明。

20140828_1928684_image004_839582_30008_0.jpg

图4 成功拜访WebShell后门

4 文件上传破绽防备

第一,上传的文件能够被Web容器说明施行。所以文件上传后所在的名目如果Web容器所覆盖到的途径。
其次,会员能够从Web上拜访这个文件。假如文件上传了,但会员没法通过Web拜访,或者没法得到Web容器说明这个足本,那么也不克不及称之为破绽。
最后,会员上传的文件若被平安检查、格局化、图片紧缩等功效改动了内容,则也大概致使攻击不成功。

防备文件上传破绽常见的几种办法。

1、文件上传的名目设定为不成施行

只要web容器没法解析该名目下面的文件,即便攻击者上传了足本文件,效劳器本身也不会受到影响,因此这一点至关重要。

2、推断文件类型

在推断文件类型时,可以结合使用MIME Type、后缀检查等方式。在文件类型检查中,热烈引荐白名片面式,黑名单的方式已经很多次被证明是不成靠的。此外,关于图片的处置,可以使用紧缩函数或者resize函数,在处置图片的同时毁坏图片中大概包括的HTML代码。

3、使用随机数改写文件名和文件途径

文件上传假如要施行代码,则需要会员能够拜访到这个文件。在某些环境中,会员能上传,但不克不及拜访。假如利用了随机数改写了文件名和途径,将极大地增添攻击的成本。再来就是像shell.php.rar.rar和crossdomain.xml这种文件,都将由于重命名而没法攻击。

4、独自设定文件效劳器的域名

由于阅读器同源战略的关系,一系列客户端攻击将失效,比方上传crossdomain.xml、上传包括Javascript的XSS利用等问题将得到解决。

l 系统开发阶段的防备

系统开发人员应有较强的平安意识,特别是采纳PHP说话开发系统。在系统开发阶段应充分思考系统的平安性。对文件上传破绽来说,最好能在客户端和效劳器端对会员上传的文件名和文件途径等项目离别停止严厉的检查。客户端的检查虽然对技术较好的攻击者来说可以借助工具绕过,但是这也可以阻挠一些根本的试探。效劳器端的检查最好使用白名单过滤的办法,这样能防止大小写等方式的绕过,同时还需对%00截断符停止检测,对HTTP包头的content-type也和上传文件的大小也需要停止检查。

l 系统运转阶段的防备

系统上线后运维人员应有较强的平安意思,积极使用多个平安检测工具对系统停止平安扫描,及时发明潜在破绽并修复。按时查看系统日志,web效劳器日志以发明入侵痕迹。按时关注系统所使用到的第三方插件的更新状况,如有新版本公布倡议及时更新,假如第三方插件被爆有平安破绽更应马上停止修补。关于整个网站都是使用的开源代码或者使用网上的框架搭建的网站来说,特别要留意破绽的自查和软件版本及补丁的更新,上传功效非必选可以直接删除。除对系统自生的保护外,效劳器应停止合理配置,非必选一样的名目都应去除施行权限,上传名目可配置为只读。

l 平安设备的防备

文件上传攻击的本质就是将歹意文件或者足本上传到效劳器,专业的平安设备防备此类破绽主如果通过对破绽的上传利用行动和歹意文件的上传历程停止检测。歹意文件变幻无穷,潜藏手法也不竭标新立异,对一般的系统治理员来说可以通过摆设平安设备来帮忙防备。当前华三通讯公司公布的SecPath IPS系列产品经过长期的积存,不单可以基于行动对网络中大量文件上传破绽的利用停止检测,同时还能基于内容对歹意文件停止识别。

二、 完毕语

对攻击者来说,文件上传破绽不断都是猎取效劳器shell的重要途径。对系统保护人员来说,文件上传破绽的宏大危害也不必赘述,积极学习,深入理解破绽的相关知识可以更沉着的面临这类攻击

引荐教程:PHP平安与破绽

以上就是web平安之文件上传破绽攻击与防备办法的具体内容,更多请关注百分百源码网其它相关文章!

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有152人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板