freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

特定版本Vaadin组件反序列化漏洞
superLeeH 2025-01-05 15:30:30 71163
所属地 四川省

影响版本

仅限于7.7.14版本

<dependencies>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-server</artifactId>
            <version>7.7.14</version>
        </dependency>
        <dependency>
            <groupId>com.vaadin</groupId>
            <artifactId>vaadin-shared</artifactId>
            <version>7.7.14</version>
        </dependency>
    </dependencies>

流程分析

sink点

这里选择逆向进行分析,通常使用静态扫描工具被标注的也就是sink点的位置,判断可控点和我们的sink点是否形成一条完整的通路,若存在有完整的通路,则表明存在漏洞

vaadin相关依赖已知的sink点在NestedMethodProperty#getValue方法中,其中存在有m.invoke(object)反射调用函数

image-20241218215428643.png

其中该反射调用中的object来自属性instance

全局搜索该属性的写入位置,其在NestedMethodProperty类的构造函数和setInstance均能对其进行写入,说明其可控

image-20241218215737520.png

而在反射调用方法时,是遍历getMethods的每一个方法进行调用,通过查找该属性的写入,发现其在initialize方法中存在写入

image-20241218223844828.png

initialize方法

如果你还记得的话,在NestedMethodProperty的构造方法对instance进行赋值后,同样会调用initialize方法进行初始化

image-20241218224140480.png

下面简单分析一下该方法的流程

image-20241218224406412.png

image-20241218230615304.png

  1. initialize方法接受两个参数,分别为beanClasspropertyName
    这里传入的属性名参数允许有多个属性,不同的属性名之间通过.进行连接,在initialize方法对其进行处理时,首先处理propertyName,将其通过.分割成一个字符串数组simplePropertyNames,代表一个一个的“属性名”

  2. 紧接着,将会遍历这个字符串数组simplePropertyNames,并将获取的beanClass和propertyName复制到lastSimplePropertyNamelastClass

  3. 之后使用上面提取的两个参数,通过调用MethodProperty.initGetterMethod方法获取对应属性的getter方法

可试读前30%内容
¥ 14.9 全文查看
9.9元开通FVIP会员
畅读付费文章
最低0.3元/天
# 网络安全 # web安全 # 网络安全技术
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 superLeeH 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
superLeeH LV.5
这家伙太懒了,还未填写个人描述!
  • 51 文章数
  • 30 关注者
常用组件hutool的潜在Gadget分析
2025-04-12
hutool组件下dynamic proxy和JDBC的部分可用链
2025-03-18
Vaadin组件下的新反序列化链寻找
2025-02-11
文章目录