shiro-waf-bypass
shiro-waf-bypass
这个shiro是有WAF的,具体的情况就是找得到key,但是找不到链。

image.png
当key存在但是找不到链,抓包看看请求。
我所知的shiro bypass思路就从rememberMe cookie的长度,还有就是脏数据填充,waf会解密rememberMe cookie,解密后查看是否存在恶意行为,bypass的策略就是防止cookie被解密,由于shiro的加解密方式用到的是base64+aes,只需要再payload中加入某些特殊字符,即可绕过waf,可用的字符为!、@、#(只要不出现BASE编码中可能出现的字符就行)
先探测WAF规则

image.png
这是一个工具探测链的时候所发送的请求包,请求包为GET请求。
状态无回显。
判断拦截cookie长度

image.png
rememberMe 存在,rememberMe=deleteMe也存在。
那就可以确定一件事,WAF确实拦截了cookie长度。
有可以缩小payload长度的,但是我不会,项目参考:https://xz.aliyun.com/t/10824
填充脏字符

image.png
填充脏字符后依然无回显。
未知Http方法名绕WAF
修改GET请求方法测试。
最后把请求修改为XXX之后即可执行成功。
image.png

image.png
注:
刚开始未知请求不可以,还是被WAF掉了,刚开始识别的WAF特性是:
1.拦cookie数据过长
2.拦纯POST
当时使用伪协议成功绕过,日后可以多试试,主要就是思路就是fuzz的过程。