文章列表

# NoRCE # 审计 com.example.demo.bean.Connect 有一个 connect 方法,可以用来 jdbc 连接 MyBean 中可以调用到 Connect 的 connect 方法 然后看逻辑 先 readUTF () 判断 hashcode 是否相同再反序列化,其中 MyObjectInputStream 有黑名单 不让 com.example.demo.bean.Connect 类还有 java.security.* 反序列化 那么思路就是利用 RMIConnector 二次反序列化,然后利用 jdbc...

https://forum.butian.net/share/1922 https://www.cnpanda.net/sec/1063.html https://www.cnblogs.com/colo/p/15507738.html# 片段表达式 # 基础知识 # 片段表达式 Thymeleaf 中的表达式有好几种 变量表达式: ${...} 选择变量表达式: *{...} 消息表达: #{...} 链接 URL 表达式:...

# 环境配置 https://tttang.com/archive/1647/#toc_tabby https://github.com/wh1t3p1g/tabby/wiki/Tabby 食用指北 https://blog.z3ratu1.cn/tabby 使用入门.html https://mp.weixin.qq.com/s/u7RuSmBHy76R7_PqL8WJww 注意 tabby 需要使用 jdk8 application.properties 中的账号密码对应 每次分析前先将上一次的分析结果 (cache/graphdb.mv.db 以及...

https://tttang.com/archive/1709/#toc_0x02-http11processor # 起因 在 Processor 中也存在一种可以利用的内存马,接下来针对 Http11Processor 进行分析 入口在 AbstractProcessorLight 的 process 会根据当前 SocketWrapperBase 的状态进行响应的处理,在 OPEN_READ 状态时,会调用对应的 Processor 进行处理 这里会进入 Http11Processor 的 service 方法,往下看 这里会做三件事 在 Http11Processor 的...

# Docker 工作流程 # 流程图 # 底层原理 # Docker 是怎么工作的? Docker 是一个 Client-Server 结构的系统,Docket 的守护进程运行在主机上,通过 Socket 从客户端访问 DockerServer 接收到 DockerClient 的指令,就会执行这个命令 # Docker 为什么比 VM...

https://guokeya.github.io/post/psaIZKtC4/ https://www.cnblogs.com/kingbridge/articles/16717030.html# 简单分析 # 源码分析 jar 包里面就一个路由 package com.ctf.hessian.onlyJdk;import com.caucho.hessian.io.Hessian2Input;import com.sun.net.httpserver.HttpExchange;import com.sun.net.httpserver.HttpHandler;import...

Hashtable AbstractMap.get 然后调用 LazyMap.get 这里的 Hashtable.put 与 remove 的原理与 cc6 类似 另外一说 要想执行 equals 必去让两个不同的 key 的 hash 值相同,因此要碰撞,所以就有了这 yy 与 zZ 看一下 HashTable 具体怎么调用的 首先进入 readObject 第一次进入 reconstitutionPut 的时候, key 为 lazyMap1 , value 为 test ,此时的 table 为 null 进入 因为 tab 是 null,所以 e 也是...

# TiedMapEntry.hashCode cc6 和 cc1 后半部分相同,就是利用 TiedMapEntry.hashCode 去触发 LazyMap.get 我们进来看一下它的 hashCode 跟进 getValue 再看一下它的构造函数 就是构造键值对,那么只需要让其 map 为 LazyMap 即可 然后再看 HashMap.readObject # HashMap.readObject 就是这里触发 hashCode , 只需要让其 key 为 TiedMapEntry 即可 不过这里不能直接用 put,因为 put 也会调用 hashCode 那么我们只需让...

BadAttributeValueExpException 注意在构造函数的时候会直接调用 toString方法 ,所以一开始需要赋值一个其他的,反序列化的时候再给 TiedMapEntry TiedMapEntry poc import javassist.ClassPool;import javassist.CtClass;import javassist.CtConstructor;import org.apache.commons.collections.Transformer;import...

测试环境:4.0 因为 CommonsCollections4 除 4.0 的其他版本去掉了 InvokerTransformer 的 Serializable 继承,导致无法序列化。 我们找了 TransformingComparator.compare 进行字节码加载 查看哪里调用了 TransformingComparator.compare 发现在 PriorityQueue.readObject 开始构造 先看 TransformingComparator 的构造方法 可以直接赋值 然后看 PriorityQueue...