简析struts2漏洞CVE-2017-5638,S02-45 (形成原理,解决方法)

本文详细介绍了Struts2基于`commons-fileupload`组件的文件上传漏洞CVE-2017-5638(S02-45)。通过修改Content-Type字段触发漏洞,导致服务器执行任意命令。漏洞形成原理在于异常处理过程中,OGNL表达式被不当执行。解决方法包括应用官方补丁或在过滤器中拦截非法请求。
摘要由CSDN通过智能技术生成

简单说一下Struts2基于“commons-fileupload”组件实现文件上传的漏洞,漏洞编号CVE-2017-5638,S02-45.

1. 漏洞重现:

     通过发包模拟器或其它你能修改请求头Content-Type字段的客户端,可以把 Content-Type 修改成诸如haha~multipart/form-data %{#_memberAccess=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS,@java.lang.Runtime@getRuntime().exec('calc')};   的形式。

    自己搭个web服务器,MVC框架使用struts2 (使用有问题的版本),实现一个文件上传的功能。

    然后发包模拟器发包,结果发现在服务端电脑上弹出一个计算器的程序,谁让你动我电脑上的东西了吗?但就是动了,流氓会武术谁也档不住~~  OMG!!!    

   

 

2. 漏洞形成原理:

    由于头字段Content-Type的内容是非法的,不符合格式的,所以上传肯定是会出错的,commons-fileupload组件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值