×

【安全课堂】Webshell 攻击介绍
  

深信服安全产品研发 7855

{{ttag.title}}
作者简介:千里目安全实验室,隶属某公司北京安全研究部。拥有专业核心白帽子团队和开发团队,致力于网络安全攻防技术的研究和积累,依靠创新理念引领工作,在攻与防的对立统一中寻求技术突破。
扫码关注,获取千里目安全实验室最新安全技术研究


漏洞原理                                                                        
               
        文件上传功能本身是一个正常的业务需求,对于网站来说,很多时候需要用户将文件上传到服务器,例如上传自定义头像,文件共享,发送邮件时添加附件,文件备份与恢复。所以“文件上传”本身没有问题,有问题的是服务器怎样处理和解释文件。如果服务器的处理逻辑不够安全,就可能会会造成文件上传漏洞。       文件上传漏洞是指用户上传了一个可执行的脚本文件,并通过此脚本获得执行服务端命令的能力。

实例展示                                                                          

    常见的问题有:
    1、上传文件是Web脚本语言,服务器解释并执行了用户上传的脚本,导致代码执行;
    2、上传文件是病毒、木马文件,黑客以诱骗用户或者管理员下载执行;
    3、上传文件是钓鱼图片或为包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺骗。

    实例1:绕过后缀名限制进行Webshell上传
    1、攻击者可通过网站扫描工具或者手动查询轻松找到以下上传点。
  

    2、上传点探测

    随便上传一个文件进行探测   


    根据响应提示,该上传页面只能上传后缀名为jpg, jpeg, gif, doc, xls, rar, zip, swf, flv, rm, avi, ra, rmvb的文件。

    3、使用工具BurpSuite截取数据包并修改发送,绕过后缀名限制上传文件(BurpSuite安装及使用见附加内容)

    这里采用空字节截断技术

    空字节截断技术介绍:
    0x00截断:在许多语言的常用字符串处理函数中,0x00被认为是终止符,比如应用只允许上传jpg图片,那么可以构造文件名为2.asp.jpg,.jpg绕过了应用的上传文件类型判断,但对于服务器来说,此文件因为字符截断的关系,最终会以2.asp存入路径里。

    这里将进行URL解码,构造文件名进行后缀截断


    修改过后向服务器发送请求,页面显示上传成功  

  

    4、寻找上传路径,Getshell

    完成上传WebShell并不意味着可以执行,有时候WebShell是上传成功了,但是找到上传路径是一件很费力的事,以下分两种情况介绍。

    利用诸如上传头像、上传文件等上传点上传WebShell(包括直接上传、绕过客户端、绕过服务器端文件扩展名、绕过mime类型、绕过文件内容检测、利用过滤不全),此种情况上传文件完成后一般会向用户反馈上传文件的完整url,即使不反馈,这些路径也很容易猜测出来,例如常见的目录有/photo、/image、/upload 等。

    这里在请求包中暴露了上传路径


访问路径下的文件:http://xxx/website/datum/gazette/upload.jsp


    5、Webshell的作用

    通过该程序可以远程管理服务器上的文件系统,可以新建、修改、删除、下载文件和目录。对于windows系统,还提供了命令行窗口的功能,可以运行一些程序,类似与windows的cmd。

    6、用相同的方法在再次上传一个jsp小马,用来连接菜刀(菜刀下载及使用见附加内容)


   实例2:利用服务器漏洞上传Webshell

    1、利用工具或手动找到上传点,经典的FCK编辑器漏洞(想了解更多FCK编辑器漏洞访问http://www.chncto.com/heikejishu/10684.html

    2、确定漏洞

    首先确定编辑器版本号,使用FCK编辑器常见路径找到对应版本号,可以找到以下页面:


使用wvs漏洞扫描工具可探测服务器类型和版本号(wvs下载和使用见附加内容)


    3、利用服务器解析漏洞上传文件

    IIS6.0系统漏洞介绍:

    漏洞一:
    前面提到 0X00字符截断文件名,在IIS和Windows环境下也曾经出过非常类似的漏洞,不过截断字符变成了分号“;”。

    当文件命名为 1.asp;xx.jpg 时,IIS6.0 会将此文件解析为 1.asp ,文件名被截断了,从而导致脚本执行。

    漏洞二:
    因为处理文件夹扩展名出错,导致将/*.asp/目录下的所有文件都作为ASP文件进行解析。比如:
     
    这个 2.jpg 就会被当做ASP进行解析。

    由于该上传页面为图片上传点,对后缀名做了限制,所以基于IIS6.0漏洞,把webshell的文件名构造为webshell.asp;jpg


    上传成功可以看到系统把文件按照日期格式重命名为20150917171617527131.asp;jpg

    4、Getshell

    FCK编辑器上传的文件有一个通用路径/images/userfiles/image/,接下来访问我们上传的文件:http://xxx/images/userfiles/image/20150917171617527131.asp;jpg


    成功访问到我们的解析文件,输入密码404,成功进入管理页面


    菜刀使用同案例1,不再演示。

漏洞危害                                                                       

1、工具危害

以上真实案例可以看出,网站在没有任何防御的情况下,攻击者可以使用任意扫描工具对网站进行扫描和探测,漏洞和敏感路径非常容易被暴露。/upload和FCK编辑器等上传路径被发现后,攻击者绕过限制上传任意文件,控制服务器。

2、信息泄露(实例2)

众所周知,FCKeditor是一个漏洞百出的编辑器,无论是安全从业人员还是黑产工作者对它的利用可谓乐此不疲,FCKeditor与IIS服务器漏洞的搭配堪称经典。但是在实例2中,我们轻易搜索到了FCKeditor版本号和服务器信息,然后利用网络共享的方法轻易Geshell。大大节省了攻击者在渗透过程中的探测时间。

3、权限问题

在很多情况,管理员为了方便行事,在建设网站的时候直接使用最高权限,后期也没有降低权限,这样做存在极大的风险。网站一旦被攻击成功并Getshell,可控制整个服务器。如果该服务器还有别的用户在使用,将会使其他用户同样暴露在危险中。

4、路径暴露问题

在寻找上传路径的时候多数时借助工具,工具中收录了各种常用路径。网站部署时通常使用默认安装路径,这样做的风险是一旦使用的框架出现漏洞,很轻易利用相同的路径找到所有存在该漏洞的网站。不仅如此,很多网站的备份地址,或者一些无用的上传地址不仅没有删除,还对外开放,给攻击者可乘之机。

5、终极危害
文件上传漏洞利用成功后,相当于拥有一个网站管理工具,不仅可以对网站内容进行增删改查和页面篡改,还可以连接数据库,对数据库进行恶意操作,对于拥有高权限的用户,控制整个服务器。

解决方案                                                                       

1、基于WAF防护
1.1 各种扫描工具和注入工具的防御
    NGAF特有的WAF策略能够有效防御各种漏洞扫描工具和敏感目录爬取工具对网站进行探测。

1.2  敏感目录保护机制
     NGAF的WAF库中收录了常见上传敏感路径,一旦有攻击者远程访问这些敏感目录,规则库匹配后将立即进行拦截。

1.3  Webshell连接
文件上传成功后,往往需要服务器能够成功解析该文件,并且允许远程访问才能控制服务器。NGAF的WAF库中收录了各种webshell特征,攻击者上传webshell后在访问shell的响应中,WAF规则可成功匹配shell特征,拦截响应。

1.4  菜刀屏蔽
    菜刀是一款强大的网站管理工具,同时也是黑客手中攻击网站的利器。WAF中有专门用来匹配菜刀特征的规则,一旦匹配到有菜刀连接shell,立刻进行拦截。

2、基于代码层的防护
2.1 文件上传目录设置为不可执行

2.2 根据文件内容判断文件类型

2.3 使用随机数改写文件名和文件路径

附加内容                                                              

打赏鼓励作者,期待更多好文!

打赏
1人已打赏

大仁哥的男宠 发表于 2016-3-24 19:27
  
从小就有一个当黑客的梦想,现在我看见梦想在向我招手
头像被屏蔽
新手166158 发表于 2019-5-4 22:52
  
提示: 作者被禁止或删除 内容自动屏蔽
Misel 发表于 2019-5-7 10:24
  
出来混脸熟来了
一个无趣的人 发表于 2019-11-28 22:53
  
这个课程真的是大给力的。图文并茂,第一次接触表示基本都能看的懂。
新手589624 发表于 2021-4-14 08:08
  
坚持每天登陆论坛学习
发表新帖
热门标签
全部标签>
技术盲盒
西北区每日一问
安全效果
每日一问
干货满满
新版本体验
【 社区to talk】
技术笔记
功能体验
技术咨询
产品连连看
标准化排查
GIF动图学习
2023技术争霸赛专题
每周精选
信服课堂视频
通用技术
自助服务平台操作指引
秒懂零信任
技术晨报
安装部署配置
答题自测
原创分享
升级&主动服务
社区新周刊
POC测试案例
畅聊IT
专家问答
技术圆桌
在线直播
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
社区帮助指南
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
高手请过招
高频问题集锦
全能先锋系列
云化安全能力

本版达人

新手68983...

本周分享达人

零和一网络

本周提问达人