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

网站建设需要多少钱小江seo新人培训班

网站建设需要多少钱小江,seo新人培训班,深圳网站建设 贴吧,浙江网站建设企业1. 漏洞原理 Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。 那么…

1. 漏洞原理

Apache Shiro框架提供了记住密码的功能(RememberMe),用户登录成功后会生成经过加密并编码的cookie。在服务端对rememberMe的cookie值,先base64解码然后AES解密再反序列化,就导致了反序列化RCE漏洞。
那么,Payload产生的过程:
命令 -> 序列化 -> AES加密 -> base64编码 -> RememberMe Cookie值
在整个漏洞利用过程中,比较重要的是AES加密的密钥,如果没有修改默认的密钥那么就很容易就知道密钥了,Payload构造起来也是十分的简单。
在这里插入图片描述

2. 环境搭建

直接从github上clone代码到本地。

git clone https://github.com/apache/shiro.git
cd shiro
git checkout shiro-root-1.2.4

编辑shiro/samples/web目录下的pom.xml,加一个jstl的版本,否则默认版本解析jsp会报500错误。

<dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.2</version><scope>provided</scope>
</dependency>

搭建tomcat。
在这里插入图片描述

下载shiro war包
https://github.com/jas502n/SHIRO-550
在这里插入图片描述

加载war包。
点击运行项目,打了一下,能打。
在这里插入图片描述

3. 漏洞流程分析

1、尝试登录shiro,把rememberMe勾上,会返回一大串Cookie,之后的请求都会带着这串Cookie。
在这里插入图片描述

这时候我们思考Cookie里面的内容是什么,一般都是用来存放一些认证信息,比如序列化好的一些认证数据等等。
2、在idea里面找一下数据是怎么处理的,两下shift,快速查找shiro包里面与cookie相关的类名。
在这里插入图片描述

3、CookieRememberMeManager类中和序列化相关的方法:rememberSerializedIdentity
在这里插入图片描述

CookieRememberMeManager类中和反序列化相关的方法:getRememberedSerializedIdentity()
getRememberedSerializedIdentity()的作用是获取序列化加密数据,像是只做了一层base64解密。
在这里插入图片描述

4、找哪里调用了getRememberedSerializedIdentity()。
AbstractRememberMeManager.getRememberedPrincipals()调用了getRememberedSerializedIdentity()
在这里插入图片描述
在这里插入图片描述

可以看到获取bytes以后调用了convertBytesToPrincipals()方法,该方法作用是把解密后的Cookie数据转换成认证信息。
在这里插入图片描述

跟一下convertBytesToPrincipals()方法,该方法作用是解密数据和反序列化数据。
在这里插入图片描述

跟decrypt()。
在这里插入图片描述

发现下列代码传入值分别是"加密的字段"和"加密key"。
cipherService.decrypt(encrypted, getDecryptionCipherKey());
找一下加密key是什么。
继续跟getDecryptionCipherKey(),发现返回decryptionCipherKey的值。
在这里插入图片描述

Find Usage decryptionCipherKey值,找哪里write了decryptionCipherKey,找到了setDecryptionCipherKey()方法。
在这里插入图片描述

继续找谁调用了setDecryptionCipherKey()方法,找到了setCipherKey()方法。
在这里插入图片描述

找谁调用了setCipherKey()方法,找到了AbstractRememberMeManager()方法。
在这里插入图片描述

发现常量DEFAULT_CIPHER_KEY_BYTES
在这里插入图片描述

发现是一个固定的key来做的aes加密。

跟deserialize()。
按住shift一直找,知道找寻到如下代码,可以看到调用了反序列化readObject(),这里如果有依赖的话就可以直接打CC了。
在这里插入图片描述

5、尝试找利用链,看起来java库里是带有有漏洞的CC的。
在这里插入图片描述

但是实际上用Maven Helper插件来看是没有真正运行到程序中的,都是存在于test包中。
在这里插入图片描述

程序实际运行只会把compile、runtime的包打进去,test打不进去。
真正能打的就这个CB。
在这里插入图片描述

6、这里就打URLDNS那个自带的链。
序列化数据 -> key固定aes加密 -> base64

生成URLDNS序列化数据,填写自定义dnslog地址。
在这里插入图片描述
使用脚本将序列化数据先aes加密,再base64。
在这里插入图片描述
在这里插入图片描述

生成加密的序列化数据后在发包利用的时候不能携带已登录的JSESSIONID,如果存在JSESSIONID就不会读取rememberMe了。直接发包,Cookie: rememberMe=[加密后序列化数据]
成功触发dnslog请求。
在这里插入图片描述

4. 参考

https://www.bilibili.com/video/BV1iF411b7bD/?spm_id_from=333.999.0.0&vd_source=04a73463f80a726a1d35327bd426fa6e
http://changxia3.com/2020/09/03/Shiro%E5%8F%8D%E5%BA%8F%E5%88%97%E5%8C%96%E6%BC%8F%E6%B4%9E%E7%AC%94%E8%AE%B0%E4%B8%80%EF%BC%88%E5%8E%9F%E7%90%86%E7%AF%87%EF%BC%89/

http://www.wangmingla.cn/news/127028.html

相关文章:

  • 网站制作怎么学搜狗搜索排名优化
  • 厦门市建设局官方网站证书查询800元做小程序网站
  • 网站首页作用做做网站
  • wordpress 仿envato东莞网站推广优化网站
  • 新疆住房和城乡建设厅网站百度开放云平台
  • 怎么找做企业网站的外贸推广建站
  • 网站及备案推广app的单子都在哪里接的
  • 网站条形码如何做西安网站定制开发
  • 合肥做网站找哪家好网页优化怎么做
  • 北京两学一做网站手机系统优化软件哪个好
  • 网站 色调在线磁力搜索引擎
  • 哪个软件傻瓜式做网站怎么创建公司网站
  • 为什么别的电脑能打开的网站我的电脑打不开济南seo排名优化推广
  • 青岛手机网站建设公司婚恋网站排名
  • 技术网站的费用怎么做会计分录百度站内搜索
  • 网站开发语广州最新疫情最新消息
  • 编写个人网站百度竞价关键词优化
  • 重庆seo杨洋长沙seo关键词
  • 客户说做网站没效果广东深圳今天最新通知
  • 太仓住房与城乡建设局网站国家大事新闻近三天
  • 专业建设网站开发上海网站推广广告
  • 金坛网站制作巨量广告投放平台
  • wordpress评论点评旺道seo网站优化大师
  • 深圳广科网站建设杭州seo工作室
  • 宝贝做网站优帮云查询数据云查询
  • 自己搭建服务器做网站网站域名备案查询
  • 北京建设网站图片最新国际新闻 大事件
  • 电影网页设计模板学seo推广
  • 网站建设 签约信息深圳企业黄页网
  • 商城网站建设定制长尾关键词挖掘工具