使用WAF防御网络上的隐蔽威胁之反序列化攻击

​ 什么是反序列化

反序列化是将数据结构或对象状态从某种格式转换回对象的过程。这种格式通常是二进制流或者字符串(如JSON、XML),它是对象序列化(即对象转换为可存储或可传输格式)的逆过程。

反序列化的安全风险

反序列化的安全风险主要来自于处理不受信任的数据源时的不当反序列化。如果应用程序反序列化了恶意构造的数据,攻击者可能能够执行代码、访问敏感数据、进行拒绝服务攻击等。这是因为反序列化过程中可能会自动触发代码执行,比如在某些语言和框架中,对象在被反序列化时会自动调用特定的方法。

反序列化攻击的工作原理

应用程序的反序列化机制:在正常情况下,应用程序可能会接受序列化数据(例如,从网络请求、文件等),并将其反序列化成应用程序内部使用的对象。

恶意数据注入:攻击者构造恶意的序列化数据。这些数据看似合法,但实际上包含了攻击代码或恶意指令。

反序列化执行:当应用程序反序列化攻击者提供的恶意数据时,嵌入其中的恶意代码或指令被执行。这可能导致多种安全问题,如远程代码执行、权限提升、数据泄露等。

攻击的示例

举一个简单的例子,在Java环境中,如果攻击者知道应用程序在反序列化时会使用某个具有漏洞的类,他们可能会构造一个特殊的序列化对象,当这个对象被反序列化时,会触发一个安全漏洞,导致执行攻击者预设的恶意代码。

防御措施

防御反序列化攻击主要包括以下几个方面:

谨慎处理外部输入:对所有接收的序列化数据进行严格的验证和清理,尤其是来自不可信来源的数据。

最小化使用反序列化:在可能的情况下,避免反序列化不可信数据。

使用安全的反序列化机制:使用安全库和方法来处理序列化数据,例如使用安全的编码/解码机制。

应用程序更新和补丁:确保应用程序及其依赖的库是最新的,及时应用安全补丁。

访问控制和监控:实施适当的访问控制,并监控反序列化过程中的异常行为。

WAF(Web应用程序防火墙)的作用—推荐雷池社区版(强大好用的WAF)

WAF可以帮助防御反序列化攻击。WAF的主要作用包括:

监控和过滤流量:WAF可以监控到达应用程序的流量,并根据预定义的规则集来过滤可疑的请求。

防护规则:WAF通常包含针对常见攻击(如SQL注入、XSS、CSRF等)的规则,也包括某些反序列化攻击模式。

定制规则:可以在WAF中定制规则以拦截特定的反序列化攻击模式,尤其是已知的攻击向量。

日志和警报:WAF提供日志记录和警报机制,有助于识别和响应潜在的安全威胁。

WAF可以作为防御策略的一部分,但它不是防御反序列化攻击的唯一手段。最好是结合安全的编程实践、框架更新、输入验证和权限控制等多种策略来提升安全性。

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Shiro反序列化攻击溯源可以追溯到很多年前,而且在攻防比赛和红队评估项目中仍然会遇到。虽然主站可能不会遇到Shiro漏洞,但是在主站的边缘域名、全资子公司的子域名、边缘资产、微信公众号、微信小程序等地方,仍然可能会发现该漏洞的存在。目前,Shiro反序列化漏洞变得越来越难以利用,其中一些原因可能是密钥较为特殊,无法绕过WAF防护,或者找不到可用的利用链,导致无法获取权限。\[1\] 在解决Shiro反序列化漏洞时,一个重要的步骤是将不同版本的Weblogic的Coherence利用链整合到ysoserial工具包中,以便直接调用ysoserial工具生成Shiro反序列化的POC。然而,这也带来了一个大问题,不同版本的Weblogic的Coherence库的SUID是不同的。如果SUID不匹配,就无法成功反序列化。虽然网上有一些文章总结了Weblogic下不同版本Coherence组件的不同SUID,但是实际测试结果与网上给出的结果可能不太一样。为了解决这个问题,一种简单的方法是使用URLClassLoader类加载不同版本的Coherence的jar包,将不同Weblogic版本的Coherence POC融合到ysoserial工具包中。\[2\] 关于Shiro反序列化攻击的溯源,有人在测试Weblogic反序列化漏洞时想到,如果使用了Shiro组件的网站部署在Weblogic中间件下,完全可以利用Weblogic中间件的Coherence组件的利用链进行攻击。Weblogic反序列化漏洞通常是通过T3、IIOP协议发送一个序列化数据包,只要相关类不在Weblogic的黑名单中,服务器就会执行恶意代码。同样,如果使用Shiro组件处理这个序列化数据包,只要中间件是Weblogic,也应该能够成功反序列化。此外,通过构造的反序列化数据包不经过T3、IIOP流程,可能也不受Weblogic黑名单的限制。因此,在测试中发现在本地搭建的各种版本的Weblogic虚拟机环境中是可行的,但是在过程中也遇到了许多困难。\[3\] #### 引用[.reference_title] - *1* *2* *3* [第17篇:Shiro反序列化在Weblogic下无利用链的拿权限方法](https://blog.csdn.net/m0_71692682/article/details/125580309)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值