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

毕业设计代做网站机械雅虎搜索引擎入口

毕业设计代做网站机械,雅虎搜索引擎入口,专门做画册的网站,网站弹出广告的是怎么做的目录 一、PHP反序列化 二、JAVA反序列化 三、Shiro反序列化 Shiro-550 反序列化漏洞原理 Shiro-721 反序列化漏洞原理 Padding Oracle 漏洞补充: 防御措施: 一、PHP反序列化 主要是分为有类和无类: 1、有类:就有相关的魔术…

目录

一、PHP反序列化

二、JAVA反序列化

三、Shiro反序列化

Shiro-550 反序列化漏洞原理

Shiro-721 反序列化漏洞原理

Padding Oracle 漏洞补充:

防御措施:


一、PHP反序列化

主要是分为有类和无类:

1、有类:就有相关的魔术方法

2、无类:就只是序列化和反序列化

#PHP 反序列化
原理:未对用户输入的序列化字符串进行检测,导致攻击者可以控制反序列化过程,从而导致代码
执行,SQL 注入,目录遍历等不可控后果。在反序列化的过程中自动触发了某些魔术方法。当进行
反序列化的时候就有可能会触发对象中的一些魔术方法。serialize() //将一个对象转换成一个字符串
unserialize() //将字符串还原成一个对象触发:unserialize 函数的变量可控,文件中存在可利用的类,类中有魔术方法:参考:https://www.cnblogs.com/20175211lyz/p/11403397.html__construct()	//创建对象时触发
__destruct() 	//对象被销毁时触发
__call() 			//在对象上下文中调用不可访问的方法时触发
__callStatic() //在静态上下文中调用不可访问的方法时触发
__get() 			//用于从不可访问的属性读取数据
__set() 			//用于将数据写入不可访问的属性
__isset() 		//在不可访问的属性上调用 isset()或 empty()触发
__unset() 		//在不可访问的属性上使用 unset()时触发
__invoke() 		//当脚本尝试将对象调用为函数时触发

二、JAVA反序列化

Java中的ObjectOutputStream类的writeObject()方法可以实现序列化,其作用把对象转换成字节流,便于保存或者传输,而ObjectInputStream类的readObject()方法用于反序列化,作用就是把字节流还原成对象。

三、Shiro反序列化

Shiro反序列化主要是Apache Shiro提供了一个remember 的功能,用户登录成功后会生成经过加密并编码的cookie,保存在浏览器中方便用户的日常使用。

而服务器对cookie的处理流程就是先获取浏览器上保存的cookie,然后将其base64解码,再进行AES解密,再将其反序列化进行校验。

而漏洞就是出现在这里,我们都知道AES它是一个硬编码,他是有默认密钥的,如果程序员没有去修改或者过于简单,那我们就可以进行cookie重构,先构造我们的恶意代码,然后将恶意代码进行序列化,然后AES加密(密钥我们已经爆破出来了)再进行base64编码,形成我们新的cookie,而服务器在处理时就会按照刚才的处理流程,就会在服务端触发我们构造的恶意代码。

过程:

  1. 加密过程:用户在登录时勾选 "Remember Me" 功能,Shiro 会将用户身份信息序列化后进行 AES 加密和 Base64 编码,然后存储在 cookie 的 RememberMe 字段中。
  2. 解密过程:当用户再次访问服务器时,服务器会从 cookie 中提取 RememberMe 字段,进行 Base64 解码和 AES 解密,最后反序列化以获取用户身份信息。
  3. 攻击者利用:攻击者可以利用已知的或通过爆破得到的 AES 密钥,构造恶意的序列化对象,并按照 Shiro 的加密解密流程进行处理,生成恶意的 RememberMe cookie。当服务器处理这个恶意 cookie 时,就会触发反序列化漏洞,执行攻击者的代码。

 

Shiro-550 反序列化漏洞原理

Shiro-550 漏洞的根本原因在于 Shiro 使用了一个硬编码的 AES 加密密钥,这个密钥在 Shiro 的源码中是默认的,因此任何人都可以使用这个密钥来构造 RememberMe 的值,进而让服务器执行反序列化操作。攻击者可以创建一个恶意对象,对其进行序列化、AES 加密和 Base64 编码,然后将其作为 RememberMe cookie 发送给服务器。服务器在解码和反序列化这个 cookie 时,会执行其中的恶意代码。

Shiro-721 反序列化漏洞原理

与 Shiro-550 类似,Shiro-721 漏洞也涉及到 RememberMe 功能,但它的 AES 加密密钥通常是随机生成的,不容易被猜测。攻击者需要使用有效的用户信息和 RememberMe cookie 来执行 Padding Oracle 攻击,构造恶意的 RememberMe 字段进行反序列化攻击。这种攻击利用了 AES-128-CBC 模式中的 Padding Oracle 漏洞,允许攻击者在不知道加密密钥的情况下,通过填充错误的响应时间来推断出加密过程中的秘密信息。

Padding Oracle 漏洞补充:

Padding Orace 四攻击指应用在解密客户端只提交的加密数据时,泄露了解密数据的分段填充是否合法的信息。攻击者利用PaddingOrace可以在不知道加密程序所使用的密钼的情况下,解密数据或者加密任意数据。即使应用程序确认加密数据的完整性,仍会导致该程序仍有敏感数据泄露和越权漏洞的风,险。
密文在被解密时,会被分成若干个数据块,每个数据块有固定的长度,常见的加密算法只大多为8字节或16字节。当数据不满足指定长度时,程序会通过指定的方式进行填充,以方便在解密时能剥除这些这些填充数据。常见的填充标准有PKCS#7。当填充内容与标准要求的语法不一致时,会生成一个错误。如果应用在解析客户端提交的加密信息时泄露了这个填充出错的状态信息,就形成了Padding Oracle。

550和721区别:

550是固定密钥,721是随机密钥

防御措施:

  • 升级 Shiro 版本:更新到 1.2.4 以上的版本,不使用默认的加密密钥,而是随机生成密钥。
  • 安全配置:不要使用公开的密钥,避免将密钥硬编码在代码中,确保密钥的安全性。
  • WAF 防护:通过 Web 应用防火墙拦截异常的 RememberMe cookie 值,防止恶意利用。
http://www.dtcms.com/wzjs/64129.html

相关文章:

  • 导航网站备案十大经典营销案例
  • 网站关键词优化到首页后怎么做今日国内新闻头条
  • 网站怎么做的防采集2345网址导航是什么浏览器
  • 宁波市网站建设近几天的新闻摘抄
  • 自己做网站怎么弄南宁百度快速排名优化
  • 西安网站建设平台网站制作公司
  • 51模板ppt福州seo
  • 网站开发包含哪些seo推广话术
  • 淮安市汽车网站建设背景免费的网页设计成品下载
  • 零食铺网站建设策划书百度百家号官网
  • 成都模板建站百度引擎搜索推广
  • 服务器上做网站seo网络优化专员
  • 哪些网站上推广比较好百度指数网址是什么
  • 263企业邮箱自动回复seo关键词排名如何
  • 淘宝联盟怎么自己做网站自媒体发稿
  • 网站公司后台百度竞价点击价格
  • 不用框架做网站百度推广图片尺寸要求
  • 企业网站建立的失败案例神童预言新冠2023结束
  • 临沂免费做网站优秀网站设计赏析
  • wordpress video模板整站优化
  • 网站建设教程论坛新闻稿件代发平台
  • app网站制作今日财经新闻
  • 电商网站功能列表厦门seo关键词优化
  • 视频网站的建设费用新网站seo外包
  • 珠海企业网站建设费用百度账号登录入口官网
  • 供应链软件系统寻找郑州网站优化公司
  • 绍兴网站定制公司怎么看app的下载网址
  • 电子商务网站策划方案百度竞价推广是什么意思
  • 单网站建设杭州seo搜索引擎优化公司
  • 有源码后怎么做网站促销活动推广语言