分类 默认分类 下的文章
只是一个默认分类
默认分类 2021-07-06
  • 1104
  • 0
  • 前置知识CBC模式首先我们可以看一下CBC模式的流程图初始化向量IV和第一组明文XOR后得到的结果作为新的IV和下一组明文XOR,按这样循环下去就得到结果。解密是加密的逆过程,也就是密文被Key解密为中间值,然后中间值与IV进行XOR运算得到该分组对应的明文PKCS #5上面说到了CBC模式是分组解密,那么到最后一组的时候可能就长度就不足了,这个时候就需要填充。对于采用DES算法加密的内容,填充规则是PKC #5,而AES是 PKC #7,这两者唯一区别是PKCS #5填充是八字节分组而PKCS #7是十六字节。具体填充方式如下图最后一组剩下n个就填几个0xnPadding Oracle AttackPadding Oracle Attack是针对CBC链接模式的攻击,和具体的加密算法无关在看下面内容时 , 得先知道这些名词的含义 :RawIV : 原始的IV , 解密时即为前一个密文分组
    默认分类 2021-07-06
  • 912
  • 0
  • 漏洞简介https://issues.apache.org/jira/browse/SHIRO-550在shirt <= 1.2.24版本中,如果用户选择了Remember Me,那么shiro就会进行如下操作获取Remember Me cookie值 Base64解码 AES解码 反序列化而我们知道Remember cookie的生成方式是序列化 AES加密 Base64加密 生成Remember Me cookie值因为AES是对称密码,密钥可用于加密和解密而密钥是硬编码在文件中的,所以就可导致利用密钥将一个恶意对象序列化后加密。选择Remember Me后解密并反序列化时就会触发恶意代码环境搭建首先下载存在漏洞版本的shirogit clone https://github.com/apache/shiro.git cd shiro git checkout shiro-roo
    默认分类 2021-07-06
  • 637
  • 0
  • 前言对于最近学习node.js的一些总结~设置安全的HTTP头在Node.js中可以通过强制设置一些安全的HTTP头来加强网站的安全系数,比如以下:Strict-Transport-Security //强制使用安全连接(SSL/TLS之上的HTTPS)来连接到服务器。 X-Frame-Options //提供对于点击劫持的保护。 X-XSS-Protection //开启大多现代浏览器内建的对于跨站脚本攻击(XSS)的过滤功能。 X-Content-Type-Options // 防止浏览器使用MIME-sniffing 来确定响应的类型,转而使用明确的content-type来确定。 Content-Security-Policy // 防止受到跨站脚本攻击以及其他
    默认分类 2021-07-06
  • 786
  • 0
  • 替换后导致序列化字符变长以下面代码为例,目的是在不直接修改$pass值的情况下间接修改$pass<?php ini_set('display_errors',1); function filter($str){ return str_replace('bb', 'ccc', $str); } class A{ public $name='aaaa'; public $pass='123456'; } $AA=new A(); $res=filter(serialize($AA)); $c=unserialize($res); echo $c->pass; ?>这里首先要知道的是将一个类序列化后的格式,这个是反序列化基础,可以参考https://www.ghtwf01.cn/index.php/archives/223/在反序列化的时候php会根据
    默认分类 2021-07-06
  • 758
  • 0
  • checkAutoType补丁分析在Fastjson1.2.25中使用了checkAutoType来修复1.2.22-1.2.24中的漏洞,其中有个autoTypeSupport默认为False。当autoTypeSupport为False时,先黑名单过滤,再白名单过滤,若白名单匹配上则直接加载该类,否则报错。当autoTypeSupport为True时,先白名单过滤,匹配成功即可加载该类,否则再黑名单过滤。对于开启或者不开启,都有相应的绕过方法。补丁绕过(需要开启AutoTypeSupport)这里需要使用如下代码开启AutoTypeSupportParserConfig.getGlobalInstance().setAutoTypeSupport(true);1.2.25-1.2.41补丁绕过漏洞复现payload:{"@type":"Lcom.sun.r
    默认分类 2021-07-06
  • 542
  • 0
  • Fastjson简介Fastjson是Alibaba开发的Java语言编写的高性能JSON库,用于将数据在JSON和Java Object之间互相转换,提供两个主要接口JSON.toJSONString和JSON.parseObject/JSON.parse来分别实现序列化和反序列化操作。项目地址:https://github.com/alibaba/fastjsonFastjson序列化与反序列化序列化Student.javapublic class Student { private String name; private int age; public Student() { System.out.println("构造函数"); } public String getName() {
    默认分类 2021-07-06
  • 1711
  • 0
  • JDNI利用方式的修复之路RMI Remote Object Payload(限制多,不常使用)攻击者实现一个RMI恶意远程对象并绑定到RMI Registry上,编译后的RMI远程对象类可以放在HTTP/FTP/SMB等服务器上,供受害者的RMI客户端远程加载。RMI客户端在 lookup() 的过程中,会先尝试在本地CLASSPATH中去获取对应的Stub类的定义,并从本地加载,然而如果在本地无法找到,RMI客户端则会向远程Codebase去获取攻击者指定的恶意对象,这种方式将会受到 useCodebaseOnly 的限制。利用条件如下:RMI客户端的上下文环境允许访问远程Codebase。属性 java.rmi.server.useCodebaseOnly 的值必需为false。从JDK 6u45、7u21开始,java.rmi.server.useCodebaseOnly 的默认值
    默认分类 2021-07-06
  • 669
  • 0
  • JDNIJNDI(Java Naming and Directory Interface)是Java提供的Java 命名和目录接口。通过调用JNDI的API应用程序可以定位资源和其他程序对象。JNDI是Java EE的重要部分,需要注意的是它并不只是包含了DataSource(JDBC 数据源),JNDI可访问的现有的目录及服务有:JDBC、LDAP、RMI、DNS、NIS、CORBA。Naming Service 命名服务:命名服务将名称和对象进行关联,提供通过名称找到对象的操作。Directory Service 目录服务:目录服务是命名服务的扩展,除了提供名称和对象的关联,还允许对象具有属性。目录服务中的对象称之为目录对象。目录服务提供创建、添加、删除目录对象以及修改目录对象属性等操作。Reference 引用:在一些命名服务系统中,系统并不是直接将对象存储在系统中,而是保持对象的引
    默认分类 2021-07-06
  • 653
  • 0
  • 什么是RMIRMI是远程方法调用的简称,能够帮助我们查找并执行远程对象的方法。通俗地说,远程调用就象将一个class放在A机器上,然后在B机器中调用这个class的方法。RMI(Remote Method Invocation),为远程方法调用,是允许运行在一个Java虚拟机的对象调用运行在另一个Java虚拟机上的对象的方法。 这两个虚拟机可以是运行在相同计算机上的不同进程中,也可以是运行在网络上的不同计算机中。Java RMI(Java Remote Method Invocation),是Java编程语言里一种用于实现远程过程调用的应用程序编程接口。它使客户机上运行的程序可以调用远程服务器上的对象。远程方法调用特性使Java编程人员能够在网络环境中分布操作。RMI全部的宗旨就是尽可能简化远程接口对象的使用。从客户端-服务器模型来看,客户端程序直接调用服务端,两者之间是通过JRMP( J
    默认分类 2021-07-06
  • 725
  • 0
  • EL表达式简介EL(Expression Language) 是为了使JSP写起来更加简单。它提供了在 JSP 中简化表达式的方法,让JSP的代码更加简化。EL表达式主要功能如下:获取数据:EL表达式主要用于替换JSP页面中的脚本表达式,以从各种类型的Web域中检索Java对象、获取数据(某个Web域中的对象,访问JavaBean的属性、访问List集合、访问Map集合、访问数组);执行运算:利用EL表达式可以在JSP页面中执行一些基本的关系运算、逻辑运算和算术运算,以在JSP页面中完成一些简单的逻辑运算,例如${user==null};获取Web开发常用对象:EL表达式定义了一些隐式对象,利用这些隐式对象,Web开发人员可以很轻松获得对Web常用对象的引用,从而获得这些对象中的数据;调用Java方法:EL表达式允许用户开发自定义EL函数,以在JSP页面中通过EL表达式调用Java类的方法