freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

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

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

FreeBuf+小程序

FreeBuf+小程序

你的扫描器可以绕过防火墙么(一)
2021-06-08 11:02:53
所属地 重庆

背景

看过从shiro-550漏洞品阿里云waf规则引擎文章的,应该知道阿里云是怎么防护shiro反序列化漏洞的利用,那么我们有办法绕过防护么?

先把上面的问题放一放,看看几个base64解码相关的case吧。

base64解码时,不同语言的接口实现有略微区别,目前知道有两种"边界情况":

字符串中包含. %等符号时,是选择忽略这些符号,还是报错

字符串中包含=符号,解析到=时,是认为解析完成了,还是忽略"等号"继续解析

比如:
Python base64解码时,会忽略"="号后面的字符串

import binascii
binascii.a2b_base64(b'aGVsbG8=')       # b'hello' (valid)
binascii.a2b_base64(b'aGVsbG8==')      # b'hello' (ignoring data)
binascii.a2b_base64(b'aGVsbG8=python') # b'hello' (ignoring data)

PHP base64解码时,支持编码中有. %等符号,会忽略这些符号

P.HNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==
P%HNjcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==

我也是从别人给Python提交的这个bug学到的一些姿势。

所以,我想研究以下问题:

哪些语言受影响?

会有什么影响?

什么时候会产生绕过?

哪些waf可以绕过?

哪些语言受影响?

测试思路

有两个两个测试目标:

1. 看看"不同语言 对 == 后面是否忽略"
2. 看看"不同语言 对 . 号是否忽略"

因此,对hellobase64编码并做点变形,得到下面三个测试paylaod

aGVsbG8=test
aGVs.bG8
aGVs.bG8=

另外额外测一下shiro中base64的解码

测试的语言、版本、解码接口如下

php(7.3.11): base64_decode

python(3.7): binascii.a2b_base64、base64.b64decode

openresty(1.19): ngx.base64.decode_base64url

java(jshell 14.0.1): Base64.getDecoder().decode

shiro(1.5.1): org.apache.shiro.codec.Base64.decode

测试结果

payloadphppythonopenrestyjavashiro
aGVsbG8=testhello-z�hellohello抛异常hello-z�
aGVs.bG8hello解码失败解码失败抛异常hel
aGVs.bG8=hellohello解码失败抛异常hello
aGVsbG8=hellohellohellohellohello

结论

php、python、openresty、shiro 都不同程度地受变形payload影响

会有什么影响?

什么时候适用这种绕过方式?

以下情况下会存在绕过:

1. waf不能解码,后端可以解码
2. waf解码后,只检测解码后的数据,不检测原始payload

第一种情况的例子:比如发送PHN.jcmlwdD5hbGVydCgxKTwvc2NyaXB0Pg==,如果waf不能解码,就会放行。

第二种情况的例子:发送a=aGVsbG8=' union select 1 and ',有可能waf解码成 "hello",认为没有危害,也会放行

第一种情况很常见,第二种情况目前还没有遇到案例。

哪些waf可以绕过?

只测试了我心中的"最强王者"(阿里云waf和长亭云waf),都存在第一种情况的绕过。

规范

规范中是怎么定义"base64解码时对非字母如何处理"?

rfc规范中说的是,"没有特殊情况下,遇到非字母就应该报错并拒绝继续解码"。

官方文档shiro 是根据另外一个邮件相关的规范来做的base64编解码。

最后

所以,现在你清楚怎么绕过shiro漏洞的防护了么?

另外,如果读者有第二种情况绕过的案例,欢迎私信我。

# waf
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者