🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 简介: Struts2是一个开源的Web开发框架,被广泛使用。由于Struts2的底层性导致整个Web系统对其安全性的依赖程度高。最近,有两个安全漏洞被公布了:S2-045,S2-046 # 危害: * 高危(0day) * 无前置条件 * 可执行任意命令,上传shell # 成因: 主要是因为Struts2默认文件上传解析器jakarta的使用 * S2-045:It is possible to perform a RCE attack with a malicious Content-Type value. If the Content-Type value isn't valid an exception is thrown which is then used to display an error message to a user. * S2-046:It is possible to perform a RCE attack with a malicious Content-Disposition value or with improper Content-Length header. If the Content-Disposition / Content-Length value is not valid an exception is thrown which is then used to display an error message to a user. This is a different vector for the same vulnerability described in S2-045 (CVE-2017-5638). # 检测工具: * 上github直接搜索S2-045,S2-046 * Apache官方也有开源的POC * 白帽子也开源了不少POC # Getshell的方法: 达到触发异常的条件,将shellcode 注入到content-type与filtename就行了 # 防御: * 更新至最新版本 * 在WAF或者应用本身添加filter,针对POC字段 * 严格过滤Content-Type,filename中的内容,严谨ognl表达式相关字段 * 删除commons-fileupload-x.x.x.jar文件,文件上传不可用