的网站建设天津如何做百度的网站

当前位置: 首页 > news >正文

的网站建设,天津如何做百度的网站,手机建站官网,多网站建设shiro反序列化漏洞 Shiro-550反序列化漏洞#xff08;CVE-2016-4437#xff09; 漏洞简介 shiro-550主要是由shiro的RememberMe内容反序列化导致的命令执行漏洞#xff0c;造成的原因是默认加密密钥是硬编码在shiro源码中#xff0c;任何有权访问源代码的人都可以知道默认加…shiro反序列化漏洞 Shiro-550反序列化漏洞CVE-2016-4437 漏洞简介 shiro-550主要是由shiro的RememberMe内容反序列化导致的命令执行漏洞造成的原因是默认加密密钥是硬编码在shiro源码中任何有权访问源代码的人都可以知道默认加密密钥。于是攻击者可以创建一个恶意对象对其进行序列化、编码然后将其作为cookie的RememberMe字段内容发送Shiro将其解码和反序列化导致服务器运行一些恶意代码。特征cookie中含有rememberMe字段修复建议 更新shiro到1.2.4以上的版本不使用默认的加密密钥改为随机生成密钥 漏洞原理 一、Shiro简介 Apache Shiro 是一个强大易用的Java安全框架提供了认证、授权、加密和会话管理等功能对于任何一个应用程序Shiro都可以提供全面的安全管理服务。在ApacheShiro1.2.4版本中AES加密时采用的key是硬编码在代码中的于是我们就可以构造RememberMe的值然后让其反序列化执行。 二、Shiro服务器识别身份加解密处理的流程 1加密 1、用户使用账号密码进行登录并勾选“Remember Me”。2、Shiro验证用户登录信息通过后查看用户是否勾选了“Remember Me”。3、若勾选则将用户身份序列化并将序列化后的内容进行AES加密在使用base64编码。4、最后将处理好的内容放于cookie中的rememberMe字段。2解密 1、当服务端收到来自未经身份验证的用户的请求时会在客户端发送请求中的cookie中获取rememberMe字段内容。2、将获取到的rememberMe字段进行base64解码再使用AES解密。3、最后将解密的内容进行反序列化获取到用户身份。 三、Key AES加密的密钥Key被硬编码在代码里。于是可得到Payload的构造流程 恶意命令——序列化——AES加密——base64编码——发送Cookie 漏洞复现 漏洞复现CVE-2016-4437 环境kali linux靶场使用vulhub/shiro/CVE-2016-4437访问地址​​​​​​​抓包分析一下​​​​​​​在返回包当中发现存在rememberMedeleteMe字样可以大概确定有配置shiro可以进行下一步。因为shiro本身功能就是一个身份验证管理所以一般都在登录口可以看到。UI一键利用工具使用工具再进行检测确认输入目标的url地址根据关键字进行爆破密钥​​​​​​​接下来爆破利用链以及回显方式​​​​​​​接下来可进行命令执行​​​​​​​反弹shell 可使用工具进行检测​​​​​​​检测完成后可进行命令执行反弹shell等操作​​​​​​​使用工具进行简单的反弹设置监听端口 window​​​​​​​linux​​​​​​​还有使用yoserial监听模块JRMP来进行反弹shell具体可参考文档操作都差不多。正是因为利用简单所以危害比较大。[工具地址](https://github.com/feihong-cs/ShiroExploit-Deprecated Shiro-721反序列化漏洞CVE-2019-12422 Shiro550和Shiro721的区别是什么 Shiro550只需要通过碰撞key爆破出来密钥就可以进行利用。Shiro721的AES加密的key一般情况下猜不到是系统随机生成的并且当存在有效的用户信息时才会进入下一阶段的流程所以我们需要使用登录后的rememberMe Cookie才可以进行下一步攻击。 漏洞指纹 URL中含有Shiro字段cookie中含有rememberMe字段返回包中含有rememberMe 漏洞介绍 在Shiro721中Shiro通过AES-128-CBC对cookie中的rememberMe字段进行加密所以用户可以通过PaddingOracle加密生成的攻击代码来构造恶意的rememberMe字段进行反序列化攻击需要执行的命令越复杂生成的payload需要的时间就越长。 漏洞原理 由于Apache Shiro cookie中通过AES-128-CBC模式加密的rememberMe字段存在问题用户可通过Padding Oracle 加密生成的攻击代码来构造恶意的rememberMe字段用有效的RememberMe cookie作为Padding Oracle Attack 的前缀然后用精心制作的RememberMe来执行Java反序列化攻击。 攻击流程 登录网站并从cookie中获取RememberMe。使用RememberMe cookie作为Padding Oracle Attack的前缀。加密yoserial的序列化有效负载以通过Padding Oracle Attack使用精心制作的RememberMe。请求带有新的RememberMe cookie的网站以执行反序列化攻击。攻击者无需知道RememberMe加密的密码密钥。加密方式AES-128-CBC 属于AES加密算法的CBC模式使用128位数据块为一组进行加密解密即16字节明文对应16字节密文明文加密时如果数据不够16字节则会将数据补全剩余字节。若最后剩余的明文不够16字节需要进行填充通常采用PKCS7进行填充。比如最后缺3个字节则填充3个字节的0x03若最后缺10个字节则填充10个字节的0x0a;若明文正好是16个字节的整数倍最后要再加入一个16字节0x10的组再进行加密。Padding Oracle Attack原理 Padding Oracle攻击可以在没有密钥的情况下加密或解密密文Shiro Padding Oracle Attack(Shiro填充Oracle攻击)是一种针对Apache Shiro身份验证框架的安全漏洞攻击。Apache Shiro是Java应用程序中广泛使用的身份验证和授权框架用于管理用户会话、权限验证等功能。Padding Oracle Attack(填充Oracle攻击)是一种针对加密算法使用填充的安全漏洞攻击。在加密通信中填充用于将明文数据扩展到加密算法块大小的倍数。在此攻击中攻击者利用填充的响应信息来推断出加密算法中的秘密信息。Shiro Padding Oracle Attack利用了Shiro框架中的身份验证过程中的一个漏洞该漏洞允许攻击者通过填充信息的不同响应时间来确定身份验证过程中的错误。通过不断尝试不同的填充方式攻击者可以逐步推断出加密密钥并最终获取访问权限。这种攻击利用了填充错误的身份验证响应来获取关于秘密信息的信息泄露然后根据这些信息进行进一步的攻击。为了防止Shiro Padding Oracle Attack建议及时更新Apache Shiro版本确保已修复该漏洞并采取其他安全措施如使用安全的加密算法和密钥管理策略。 漏洞复现 漏洞复现CVE-2019-12422 环境kali linuxdocker进行搭建启动 git clone https://github.com/3ndz/Shiro-721.gitcd Shiro-721/Dockerdocker build -t shiro-721 .docker run -p 8080:8080 -d shiro-721​​​​​​​访问地址​​​​​​​利用过程和shiro550差不多shiro710需要登录网站并从cookie中获取RememberMe。进行登录使用正确的账号和密码 先使用正确的账号密码登录后再抓包获取合法Cookie(勾选Remember Me)​​​​​​​如果认证失败则只能得到 rememberMedeleteMe​​​​​​​  将登录后获得的set-cookie值当中的rememberMe值将值复制下来放到工具当中选择shiro721输入目标url设置rememberMe值点击下一步等待即可​​​​​​​选择检测方式​​​​​​​等待即可​​​​​​​使用shiro综合工具 输入url后进行爆破密钥爆破利用链以及回显​​​​​​​命令执行​​​​​​​[工具地址(https://gitcode.net/mirrors/j1anfen/shiro_attack/-/releases/2.2?spm1033.2243.3001.5876)