自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

zyer

不会java,不会python,不会安卓逆向,不会pwn,都想学!

  • 博客(39)
  • 收藏
  • 关注

原创 kubernetes学习之路--污点容忍度横向主节点

污点与容忍度

2022-12-17 12:20:53 679 1

原创 kubernetes学习之路--BadPods(Part2)

Pods配置学习

2022-12-15 22:37:39 742

原创 Linux 下复现 Google Chrome RCE

Linux服务器复现google chrome rce

2022-12-13 22:21:18 1061

原创 kubernetes学习之路--BadPods(Part1)

不安全的pod配置学习--BadPods(less1)

2022-12-12 23:22:12 463

原创 kubernetes学习之路--Pod配置学习

K8s Pod配置学习

2022-12-10 10:56:02 806

原创 kubernetes学习之路--基础概念以及搭建

本文主要介绍了云安全及相关内容的基础知识,然后提供两种搭建集群的简易方法,最后尝试新建一个pod作为初次入门学习。

2022-12-07 22:26:44 443

原创 Java内存马学习--Filter内存马

Filter内存马,入门级

2022-08-04 05:12:07 979

原创 Java内存马学习--Filter内存马——前置概念

Filter内存马

2022-08-04 04:55:52 279

原创 java--javassist学习

javassist学习

2022-06-15 11:00:58 4912

原创 java--Groovy1学习

java反序列化学习--Groovy1

2022-06-14 08:53:07 943

原创 java--CommonsBeanutils1 学习

CommonsBeanutils1利用链学习

2022-06-07 16:50:37 434

原创 [HCTF 2018]WarmUp wp

ctf web wp

2022-06-04 09:38:10 230

原创 java--CommonsCollections7 学习

根据之前的学习,发现看cc7应该很简单了。(环境:JDK8u311)cc6使用了HashMap和HashSet,cc7使用的是HashtableHashtable 与 HashMap 十分相似,是一种 key-value 形式的哈希表,但仍然存在一些区别: HashMap 继承 AbstractMap,而 Hashtable 继承 Dictionary ,可以说是一个过时的类。 两者内部基本都是使用“数组-链表”的结构,但是 HashMap 引入了红黑树的实现。 Hasht

2022-05-31 08:46:24 245

原创 java--CommonsCollections5学习

cc5和cc6差不多,主要都是利用TideMapEntry从而利用LazyMap调用get方法,而LazyMap的get方法需要的参数是LazyMap中没有的值才会触发LazyMap的transform的put方法。TiedMapEntry主要使用的是LazyMap的get方法,那么在这里我们可以看到其中getValue,hashCode,equals,toString都可以触发那么下面我们需要寻找一个可以输入TideMapEntry这个类,并且可以触发这些函数之一的一个类。BadAtt

2022-05-30 09:15:24 263

原创 java--CommonsCollections4学习

和cc2差距不大,那么这次学习一下其它的利用。TreeBag & TreeMap在 CC2 中,使用了优先级队列 PriorityQueue 反序列化时会调用 comparator 的 compare 方法的特性,配合 TransformingComparator 触发 transformer。除了 PriorityQueue,还能否找到其他的提供排序的类,在反序列化时会调用到比较器呢?于是找到了 TreeBag。探究一下过程首先看一下TreeBag的readObject方法,发

2022-05-27 21:08:27 301

原创 java--CommonsCollections3基础学习

唉,做事不细心,浪费好光阴啊!由于对java的了解甚少,于是我还是像以前那样随便使用的ysoserial和下载的commonscollections4.4进行漏洞利用,发现在jdk1.7时会提示Templates有问题,在jdk1.8还没有任何反应,然后通过不断的寻找,最后发现了原因,原来测试环境是: JDK 1.7 Commons Collections 3.1 推荐使用maven搭建,引入依赖<dependencies> <dependency>

2022-05-20 15:51:09 1078

原创 java--CommonsCollections2学习利用

上篇水文学习了PriorityQueue以及comparator,我们可以知道payload的攻击思路就是:通过使用Compare比较器的compare方法会使用transformers的transform方法,从而导致执行执行我们构造的恶意Transformers。那么这次就学习使用动态加载字节码TemplatesImpl来进行payload的构造,首先先看一下payloadimport com.sun.org.apache.xalan.internal.xsltc.trax.Templates

2022-05-19 09:05:06 210

原创 java--CommonsCollections2 基本利用学习

CommonsCollections2 是利用PriorityQueue作为反序列的出发点,以为它会重写readObject方法,于是便可以作为入口点,通过对其readObject函数分析,确定可以利用的方法从而进行利用。CC2不同于之前CC1,它依赖4.0版本的commons-collections。我使用的是4.4版本的。1.PriorityQueuePriorityQueue,它的出队顺序与元素的优先级有关,对PriorityQueue调用remove()或poll()方法,返回的

2022-05-18 19:51:43 287

原创 java--动态加载

Java字节码(ByteCode)指的是Java虚拟机执行使用的一类指令,通常被存储在.class文件中。但是我们所说的"字节码"可以理解的更广义一些----所有能够恢复成一个类并在JVM虚拟机里加载的字节序列,都在我们的讨论范围之内。Java的ClassLoader是用来加载字节码文件最基础的方法,ClassLoader就是一个"加载器",告诉Java虚拟机如何加载这个类。ClassLoader就是根据类名来加载类,这个类名是类完整路径。我们在学习反射的时候利用到的Class.forNam

2022-05-17 16:56:00 2976

原创 java--commoncollections6 续

上篇文章我们使用了HashSet作为反序列化函数的出发点,其实HashSet也可以作为出发点,我们使用HashSet构造payloadpackage com.zyer;import org.apache.commons.collections.Transformer;import org.apache.commons.collections.functors.ChainedTransformer;import org.apache.commons.collections.functors.Co

2022-05-12 20:17:20 153

原创 java--commoncollections6 反序列化利用学习

总结上周花了一周的时间学习commoncollections1,对java的反序列化利用好像有一丝丝的理解了。暂时的思路就是:首先寻找存在对应方法的类,LazyMap-->get,TransformedMap-->setValue,put从寻找一个存在readObject方法的类出发,通过寻找其它Object导致最后能触发上面的方法。问题所在从commoncollections1的学习发现,这条利用链对jdk版本有限制,高版本的jdk使用不了,具体原因就是在Java 8u71

2022-05-12 13:11:34 276

原创 java--commoncollections1 反序列化漏洞利用学习

先附上代码 :jdk7u80环境import org.apache.commons.collections.map.TransformedMap;import org.apache.commons.collections.Transformer;import org.apache.commons.collections.functors.ChainedTransformer;import org.apache.commons.collections.functors.ConstantTransf

2022-05-09 17:32:22 542

原创 java--commoncollections1 补充

上篇文章对构造payload和利用payload有了基本的了解,这篇文章就稍微补充一下其它的利用方法。我们可以知道map可以使用put方法使内容发生变化,但也有其它方法也可以使用内容发生变化从而触发利用,如setValue方法package com.zyer;import org.apache.commons.collections.Transformer;import org.apache.commons.collections.functors.ChainedTransformer;i

2022-05-08 14:29:12 337

原创 java--CommomCollections1 入门学习--part2

上篇文章对Transformer有了一些基本的了解,学习了常用的构造payload的几个Transformer,但是对其利用可能还不是很了解,那么这篇文章就试着利用构造简单的payload。我们最终要实现Runtime.getRuntime().exec(command),但反序列化漏洞的时候执行命令的方法一般都是反射执行,常用的反射执行方法:Class run = Runtime.class;Method method = run.getMethod("getRuntime");Object

2022-05-07 14:08:21 392

原创 java--CommomCollections1 入门学习--part1

介绍:Apache Commons Collections是一个扩展了 Java 标准库里的 Collection 结构的第三方基础库,它提供了很多强有力的数据结构类型并实现了各种集合工具类。作为 Apache 开源项目的重要组件,被广泛运用于各种 Java 应用的开发。可以自行安装或者使用ysoserial。前置知识:这个java标准库是针对于Map进行操作,所以我们需要了解其常用的类。TransformedMap Transformer InvokerTransformer Co.

2022-05-06 11:15:12 336

原创 Java反序列化漏洞学习1--URLDNS

上一篇文章我们可以了解到,我们想利用反序列化漏洞的话,必须找到一个类重写了readObject方法,然后反序列化的时候会将我们重写的readObject实例化,从而导致执行命令。1.ysoserial的URLDNS直接查看一下这款工具构造的payload是啥样的,工具自行下载,可以去github下载下来之后自己使用maven打包,或者有直接打包好的jar包,然后将它导入到idea中来找到idea中的Project Structure,windows和mac位置不知道一样不一样,然后按照如

2022-05-05 12:41:40 1270

原创 java基础--反序列化漏洞原理

原理根据上篇文章可以了解到,一个类想要实现序列化和反序列化,必须要实现 java.io.Serializable 或 java.io.Externalizable 接口。Serializable 接口是一个标记接口,标记了这个类可以被序列化和反序列化,而 Externalizable 接口在 Serializable 接口基础上,又提供了 writeExternal 和 readExternal 方法,用来序列化和反序列化一些外部元素。其中,如果被序列化的类重写了 writeObject 和 r

2022-05-04 12:39:25 4545

原创 java基础--序列化与反序列化

Java 提供了一种对象序列化的机制,该机制中,一个对象可以被表示为一个字节序列,该字节序列包括该对象的数据、有关对象的类型的信息和存储在对象中数据的类型。将序列化对象写入文件之后,可以从文件中读取出来,并且对它进行反序列化,也就是说,对象的类型信息、对象的数据,还有对象中的数据类型可以用来在内存中新建对象。Java 提供了两个类 java.io.ObjectOutputStream 和 java.io.ObjectInputStream 来实现序列化和反序列化的功能,其中 ObjectInputS

2022-05-04 10:36:48 533

原创 java基础--修饰符学习

1、public:public表明该数据成员、成员函数是对所有人开放的,所有人都可以直接进行调用2、private:private表示私有,私有的意思就是除了class自己之外,任何人都不可以直接使用,即便是子女或朋友都不可以使用。3、protected:protected对于子女、朋友来说,就是public的,而对于其他的外部class,protected就变成private。4.default:在同一包内可见,不使用任何修饰符。作用域 当前类 同一包内 子孙类(同一包

2022-05-03 20:39:37 112

原创 java基础--反射2

上篇文章对java反射有了一些基本的了解,对反射的理解可以是通过奇技淫巧来执行自己要执行的代码,但表达肯定没有实际操作来的明白,下面就使用使用反射来进行命令执行一. 环境版本JDK:1.8.0_311.jdk二.实验过程1.Runtime新建一个reflection.java首先是最基本的调用Runtime.getRuntime().exec("/System/Applications/Calculator.app/Contents/MacOS/Calculator");然

2022-05-03 11:09:09 671 3

原创 Java基础--反射

反射就是在运行时才知道要操作的类是什么,并且可以在运行时获取类的完整构造,并调用对应的方法。Oracle 官方有着相关解释:“Reflection enables Java code to discover information about thefields, methods and constructors of loaded classes, and to usereflected fields, methods, and constructors to operate on thei

2022-04-30 12:57:07 768

原创 fastjson反序列化漏洞(fastjson-1.2.47)

fastjson 1.2.47 爆出了最为严重的漏洞,可以在不开启 AutoTypeSupport 的情况下进行反序列化的利用。一.原理测试代码Test.javaimport com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;public class Test {public static void main(String[] args) {String s2 =...

2022-04-28 18:46:51 4084 1

原创 shiro550代码审计(巨详细)--加密部分

找了一下大佬的文章借鉴了一下shiro550的利用流程(Shiro 550 反序列化漏洞 详细分析+poc编写)简单介绍利用: 通过在cookie的rememberMe字段中插入恶意payload, 触发shiro框架的rememberMe的反序列化功能,导致任意代码执行。 shiro 1.2.24中,提供了硬编码的AES密钥:kPH+bIxk5D2deZiIxcaaaA== 由于开发人员未修改AES密钥而直接使用Shiro框架,导致了该问题于是我们......

2022-03-16 14:26:23 5811

原创 IDEA搭建shiro550复现环境

一.环境准备tomcat 8.5.76(下载地址:Apache Tomcat® - Welcome!)JDK 1.7 (下载地址:Java Archive Downloads - Java SE 7)shiro (下载地址:GitHub - jas502n/SHIRO-550: Shiro RememberMe 1.2.4 反序列化 漏洞) 下载对应war包即可shiro源码(下载地址:https://codeload.github.com/apache/shiro/zip/shiro-ro

2022-03-14 13:22:53 1961

原创 恶意代码分析实战--IDA pro的使用及课后练习l

1.对分析有用的窗口 函数窗口 Functions window 位于左半部分 列举可执行文件中的所有函数,可以在众多函数中过滤出想要的函数。这个窗口也对每一个函数关联了一些标志(F L S等),这其中最有用的是L,指明是库函数。 字符串窗口 Strings window (Shift + F12) 显示所有的字符串,可以右键Setup来修改它的属性 导入表窗口 .

2022-01-29 11:05:19 2224

原创 Mac便捷小工具收集

因为从windows转型用mac,windows的我的电脑是可以访问任意位置的,但是Mac的访达缺不是那么直观,所以我们想编辑例如 /etc/passwd 这种文件用什么办法呢?使用快捷键 command + shift + G然后

2022-01-25 09:49:59 598

原创 Mac命令行下设置快捷命令

在根目录 ~ 下 编辑 .zshrc文件vim .zshrc#sublime 快捷命令alias subl='/Applications/Sublime\ Text.app/Contents/MacOS/sublime_text'#等号左边是命令行中快捷命令的名称,右边是对应的可执行文件的路径找到sublime的执行文件路径,即exec执行文件路径,在运行程序中,右键程序,显示包内容,在Content目录下的MacOS中找到/Applications/Sublime Text..

2022-01-25 08:51:04 604

原创 Mac安装软件提示“已损坏,无法打开”的解决办法

首先我的系统版本为macos 12.1在左上角的apple图标-->系统偏好设置-->安全性与隐私-->通用中选择允许从以下位置下载的App修改为任何来源然后打开命令行,输入命令sudo xattr -rd com.apple.quarantine /Applications/xxx.app程序位置直接在访达的应用程序中直接拖入即可,回车输入密码即可如果仍然有问题,那么就可能需要安装其他版本的。...

2022-01-25 08:43:50 4236

原创 逆向工程第一本书--恶意代码分析实战--day1

一.初识windows静态分析1.常见DLL程序 Kernel32.dll 这是一个很常见的DLL,它包含核心系统功能,如访问和操作内存,文件和硬件等等 Advapi32.dll 这个DLL提供了对核心Windows组件的访问,比如服务管理器和注册表 User32.dll 这个DLL中包含了所有用户界面组件,如按钮,滚动条以及控制和响应用户操作的组件 Gdi32.d

2022-01-24 21:52:48 477

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除