前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第91篇:shiro反序列化漏洞绕waf防护的方法总结(上篇)

第91篇:shiro反序列化漏洞绕waf防护的方法总结(上篇)

作者头像
ABC_123
发布2024-04-28 12:51:00
2530
发布2024-04-28 12:51:00
举报
文章被收录于专栏:网络安全abc123网络安全abc123

Part1 前言

。Shiro反序列化漏洞于2016年公布,漏洞编号为CVE-2016-4437,也被称为Shiro-550,虽然过去8年了,但是目前仍是红队人员重点关注和利用的漏洞。目前Shiro反序列化漏洞的数量大大减少,但是从ABC_123总结最近2年的攻防比赛的战果来看,目前Shiro反序列化漏洞在一些大型公司的子域名的深层次目录、边缘子站、全资子公司仍然会被发现,在一些地级市攻防比赛中仍然会出现很多

目前主流的安全厂商的waf设备都会对shiro反序列化的攻击行为进行拦截,给一些新手朋友造成了很大困难,今天ABC_123就分享一些shiro反序列化漏洞绕waf的方法。

Part2 技术研究过程

这里ABC_123直接把绕过方法给大家贴出来,不做过多分析,因为让我再使用intellij idea把shiro源码跑起来分析一下,太费精力了。如下图所示,这是本地搭建的测试环境,放在Tomcat7.x中间件上。

接下来使用burpsuite抓取一个通过Shiro反序列化漏洞这些“ipconfig”命令的数据包,返回包中返回了命令执行结果。

  • HTTP请求方法随机

首先最被大家常用的绕waf方法就是HTTP请求头变为随机字符串,在本案例过程中,将“GET”请求方法变为“xxxxT”方法,发现是能正常执行成功的。这种方法与Web应用所处的中间件有关,在部分中间件下不适用。

  • HTTP请求方法置空

一些朋友可能只关注了HTTP请求方法随机化的问题,但是对于tomcat,将HTTP请求方法置空也是可以正常发包并返回命令执行结果,这种畸形数据包在经过waf设备会被放行,因为waf设备解析不了。这种绕过方法与中间件有关,在Weblogic中间件下不适用。

  • Shiro数据包添加脏数据

这种方法在网上很少被提起,“rememberMe=”后面的数据包添加一些特殊字符仍然是可以正常发包的,原因是shiro组件在处理点号、反引号等特殊字符,会替换为空。

  • Shiro字段添加空白字符

前面我们提到了,“rememberMe=”后面可以掺杂特殊字符,那么“rememberMe”关键词附近可否动动手脚呢?经过ABC_123的fuzz测试,发现添加“Tab”等空白字符是可以正常执行命令的。

  • Host头域名变IP地址

很多甲方公司购买了waf或者一些云waf,但是可能目标网站只对“*.xxx.com”域名进行了waf防护,这时候将host头的域名替换为域名解析出来的ip,就可以绕过waf了。

Part3 总结

1. 文中提到的添加点号等特殊字符绕过waf的思路,对于Struts2框架同样适用,这是之前ABC_123调试Struts2框架时偶然发现的,后面会写文章给大家分享。

2. 除了上述绕过waf方法之外,还有其它更复杂的方法,后续ABC_123会继续写文章分享,敬请期待。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-04-24,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 希潭实验室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Part2 技术研究过程
  • Part3 总结
相关产品与服务
消息队列 TDMQ
消息队列 TDMQ (Tencent Distributed Message Queue)是腾讯基于 Apache Pulsar 自研的一个云原生消息中间件系列,其中包含兼容Pulsar、RabbitMQ、RocketMQ 等协议的消息队列子产品,得益于其底层计算与存储分离的架构,TDMQ 具备良好的弹性伸缩以及故障恢复能力。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com