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

​ 什么是反序列化

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

反序列化的安全风险

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

反序列化攻击的工作原理

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

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

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

攻击的示例

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

防御措施

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对比启明星辰、绿盟、安恒等品牌WAF在应用攻击保护时的策略防护能力。 二. 测试步骤 2.1 环境漏洞验证 验证序号 1 验证方法 用and 1=1和and 1=2验证注入漏洞 测试步骤 1. 在浏览器打开http://192.168.1.155/ypnew_view.asp?id=791正常页面 2. 修改浏览器URL:http://192.168.1.155/ypnew_view.asp?id=791 and 1=1-- 3. 修改浏览器URL:http://192.168.1.155/ypnew_view.asp?id=791 and 1=2-- 漏洞验证 若执行步骤2与步骤1均能正常访问页面,执行步骤3得出不同的访问页面,说明存在注入漏洞 验证结果 用户签字 2.2 防护效果测试 测试序号 1 测试项目 防止黑客利用注入漏洞获取数据库版本和操作系统信息 描述 获取数据库版本和操作系统信息是黑客入侵的前提,本项主要是测试WEB防护设备能否有效的防止数据库版本和操作系统信息的泄漏 测试步骤 1、 正常浏览192.168.1.155/ypnew_view.asp?id=791 2、 在攻击机浏览器中输入以下URL: http://192.168.1.155/ypnew_view.asp?id=791 and 1=2 union all select 1,2,3,4,@@version,'6',null,null,null,null,null,null,null,null from sysobjects-- 预期结果 数据库版本信息未泄露 备注 如出现下图,说明数据库版本信息泄露,WEB应用防护设备未起作用 测试结果 用户签字 测试序号 2 测试项目 防止黑客利用注入漏洞获取数据库库名 描述 数据库库名是黑客进行SQL注入时常获取的信息,有效地防护数据库信息可以能大大降低注入攻击的风险,本项主要测试WEB应用防护设备是否能防护数据库信息泄露漏洞 测试步骤 在攻击机浏览器中输入以下URL: http://192.168.1.155/ypnew_view.asp?id=791 and 1=2 union all select 1,2,3,4,db_name(),'6',null,null,null,null,null,null,null,null from sysobjects-- 预期结果 数据库信息未泄露 备注 若在测试结果中出现下图,说明没有防护效果。 测试结果 客户签名 测试序号 3 测试项目 防止黑客通过注入漏洞获取数据库表名信息 描述 当黑客成功获得数据库的版本和数据库库名后,数据库中表的名称和内容就是SQL注入攻击的下一目标,本项主要测试WEB应用防护设备是否能防护获取数据库表名的攻击 测试步骤 1. 在攻击机浏览器中输入以下URL: 192.168.1.155/ypnew_view.asp?id=791 and 1=2 union all select 1,2,3,4,(select top 1 name from sysobjects where xtype='U' and name not in (select top 2 name from sysobjects where xtype='U')),null,null,null,null,null,null,null,null,null from sysobjects-- 2. 在攻击机浏览器中输入以下URL: 192.168.1.155/ypnew_view.asp?id=791 and 1=2 union all select 1,2,3,4,(select top 1 name from sysobjects where xtype='U' and name not in (select top 37 name from sysobjects where xtype='U')),null,null,null,null,null,null,null,null,null from sysobjects-- 预期结果 数据库table名未泄露 备注 如出现以下图示,说明WEB防护效果未起作用,数据库表泄漏 测试结果 用户签字 测试序号 4 测试项目 防止黑客利用update修改数据库的内容 描述 如果黑客成功获取了数据库和表的相关信息,将会尝试修改表内的数据,直接篡改网站内容,因此对于恶意修改数据库内容的入侵要求严格防护.本项将测试web防护设备是否能防护通过update方式修改数据库内容的恶意攻击 测试步骤 利用注入漏洞使用Update方式修改数据库内容 预期结果 数据库内容未被篡改 备注 攻击机中输入以下URL,如出现页面被篡改,说明防护失效 http://192.168.1.155/ypnew_view.asp?id=791 测试结果 用户签字 测试序号 5 测试项目 防止黑客利用注入漏洞获取后台账号信息 描述 后台管理员的账号密码信息如果泄露,黑客就可以对网站进行各种严重损坏客户利益的破坏,本项测试WEB应用防护设备能否有效防护网站管理员后台账号密码信息泄漏 测试步骤 利用注入漏洞获取后台账号信息 预期结果 不能获得后台用户名密码: 备注 当出现下图时,说明用户名密码被盗取,WEB应用防护设备无效果 打开http://192.168.1.155/admin/index.asp,输入用户名密码,可直接管理后台:http://192.168.1.155/admin 测试结果 客户签名
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、付费专栏及课程。

余额充值