- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
文件上传漏洞利用及防御方案
作者美创科技安全实验室
01、漏洞介绍
文件上传(FileUpload)是大部分Web应用都具备的功能,例如用户上传附件、修改头像、分享图片/视
频等。正常的文件一般是文档、图片、视频等,Web应用收集之后放入后台存储,需要的时候再调用出来
返回。
如果恶意文件如PHP、ASP等执行文件绕过Web应用,并顺利执行,则相当于黑客直接拿到了Webshell,
则可以拿到Web应用的数据,删除Web文件,本地提权,进一步拿下整个服务器甚至内网。
02、文件上传漏洞原理
03、文件上传漏洞复现
利用DVWA靶场进行文件上传漏洞演练:
1.LowSecurityLevel
查看源码:
这是最开始的页面:
我们尝试上传桌面上的一个图片2.jpg
这时,我们来研究一下这个路径:../../hackable/uploads/2.jpgsuccesfullyuploaded!
这是一个绝对路径,我们直接输入网址/DVWA/hackable/uploads/2.jpg
这时候,我们尝试上传桌面上的1.php文件,写入的内容为?phpphpinfo();?
如图,1.php文件上传成功,服务器并未做任何过滤限制:
我们再次访问上传的路径:/DVWA/hackable/uploads/1.php
说明存在文件上传漏洞,能够上传并且执行php文件
这个时候如果上传一句话木马:?php@eval($_GET[joker]);?
并用中国蚁剑进行连接,就可以得到这个服务器的Webshell
这样我们就可以访问这个服务器的任何文件夹,可见,文件上传漏洞的是非常具有危害性的。
2.MediumSecurityLevel
查看源码:
源码中对上传的文件类型跟大小对进行了判断过滤,也就是说正常情况下,不能够上传不符合文件类型的
文件。
我们用burpsuite抓包,将文件的上传类型修改为image/jepg
攻击成功后发现php文件上传成功
3.HighSecurityLevel
查看源码:
源代码严格限制了文件的后缀和内容:
php后缀名和php内容×
php后缀名和img内容×
img后缀名和php内容×
这时候,我们就可以把php伪造成jpg绕过,也就是制作一句话图片木马,下图是用cmd制作的一句话图
片木马:
用记事本打开可以看见这么一句话:?php@eval($_POST[joker]);?
然后我们就可以上传了,上传成功后,用中国蚁剑进行连接,就可以拿到Webshell权限。
04防御方案
系统运行时的防御
1、文件上传的目录设置为不可执行。只要web容器无法解析该目录下面的文件,即使攻击者上传了脚本
文件,服务器本身也不会受到影响。
2、判断文件类型。在判断文件类型时,可以结合使用MIMEType、后缀检查等方式。在文件类型检查中,
强烈推荐白名单方式,黑名单的方式已经无数次被证明是不可靠的。此外,对于图片的处理,可以使用压
缩函数或者resize函数,在处理图片的同时破坏图片中可能包含的HTML代码。
3、使用随机数改写文件名和文件路径。文件上传如果要执行代码,则需要用户能够访问到这个文件。在某
些环境中,用户能上传,但不能访问。如果应用了随机数改写了文件名和路径,将极大地增加攻击的成本。
再来就是像shell.php.rar.rar和crossdomain.xml这种文件,都将因为重命名而无法攻击。
4、单独设置文件服务器的域名。由于浏览器同源策略的关系,一系列客户端攻击将失效,比如上传
crossdomain.xmlJavascriptXSS
、上传包含的利用等问题将得到解决。
5、使用安全设备防御。文件上传攻击的本质就是将恶意文件或者脚本上传到服务器,专业的安全设备防御
此类漏洞主要是通过对漏洞的上传利用行为和恶意文件的上传过程进行检测。恶意文件千变万化,隐藏手
法也不断推陈出新,对普通的系统管理员来说可以通过部署安全设备来帮助防御。
系统开发阶段的防御
对文件上传漏洞来说,最好能在客户端和服务器端对用户上传的文件名和文件路径等项目分别进行严格的
检查。客户端的检查虽然对技术较好的攻击者来说可以借助工具绕过,但是这也可以阻挡一些基本的试探。
服务器端的检查最好使用白名单过滤的方法,这样能防止大小写等方式的绕过,同时还需对%00截断符进
行检测,对HTTP包头的content-type也和上传文件的大小也需要进行检查。
您可能关注的文档
- cad竞赛试题及答案.doc
- 11社会研究方法之问卷具体设计.pptx
- 缔约过失责任的构成应具备的要件有哪些.docx
- 施工现场施工机具常见安全隐患有哪些.docx
- 谈谈厄立特里亚电力现状和市场前景.docx
- 第26章外阴及阴道炎症教案.doc
- 企业宪法宣传日活动总结.pdf
- 工作室租赁合同.pdf
- 实用课件《山坡羊潼关怀古》.ppt
- 年度培训计划表模板.docx
- DB12 046.89-2011 产品单位产量综合电耗计算方法及限额 第89部分:手机 .docx
- DB12 046.88-2011 产品单位产量综合电耗计算方法及限额 第88部分:晶振 .docx
- DB12T 419-2010 无公害农产品 核桃栽培管理技术规范 .docx
- DB12T 417-2010 沙化和荒漠化监测技术规程.docx
- DB12T 449-2011 民用建筑四防门通用技术条件.docx
- DB12 046.100-2011 产品单位产量综合能耗计算方法及限额 第100部分: 果汁饮料 .docx
- DB12T 427-2010 葱姜蒜中205种农药多残留测定方法-GCMS法.docx
- DB12T 421-2010 有机农产品 甘薯有机栽培技术规范.docx
- DB12T 426-2010 蔬菜水果中205种农药多残留测定方法-GCMS法 .docx
- 《老年人身体康复》精品课件——项目6 中国传统康复技术.pptx
文档评论(0)