一道java文件上传目录穿梭修复
记一道java文件上传目录穿梭修复 进来先ls看文件: 看看readme 要求不改原本的业务逻辑修改jar包,那就是java的漏洞修复了。 按题目要求的下载文件: 拿到jar包过后改后缀为.zip解压,然后丢到idea里面看 总共就三个类 package com.xiinnn; import org.springframework.beans.fa…
随便打的两题
随便做的两题: 第一题: 进来登录看到一个文件上传: 看页面源码有提示 访问这个url 有一个源码 <?php class Action { protected $path; protected $id; public function isPathValid() { if(strpos($this->path, 'uploads') …
RMI
RMI: RMI是什么:Java的RMI远程调用是指,一个JVM中的代码可以通过网络实现远程调用另一个JVM的某个方法。RMI是Remote Method Invocation的缩写。 提供服务的一方我们称之为服务器,而实现远程调用的一方我们称之为客户端。 概念图: 客户端: 存根/桩(Stub):远程对象在客户端上的代理; 远程引用层(Remot…
polarisctf
2026 polarisctf  web方向wp 被打成区了ww,不过还是写个wp归档一下 选手:inex      排名:懒得看了,踹飞八百里开外 only real/only_real_revenge 这个题一开始就是用的文件上传的打法,结果后面打完跟别人交流发现有个奇葩的非预期(only real可以直接访问flag.php),没绷住 进来看…
TypeScript及JavaScript 基础语法
JavaScript 基础语法 1. 变量声明 // const - 常量(不能重新赋值) const name = "Alice"; const numbers = [1, 2, 3]; // let - 可变变量 let count = 0; count = 1; // ✅ 可以修改 // var - 不推荐使用(有作用域问题) var old…
CC7
CC7: 这个就是改了一下触发transform()的 版本要求: JDK < 8u121 Commons-Collections ≤ 3.2.1 LazyMap类: 还是从get()方法触发transform()方法入手: public Object get(Object key) { // create value for key if …
CC2
CC2: 就是个CC4的变种,只是用了CC3的字节码动态加载类,同时用InvokerTransformer直接触发newTransformer(),同时由于是字节码加载所以也不用考虑重复调用transform()。 POC: package org.example; import java.lang.reflect.Field; import ja…
CC5
CC5: 这个相比CC1只是出口变了一下。 LazyMap类: 我们知道这个类的get()方法可以触发transform()方法。 public Object get(Object key) { // create value for key if key is not currently in the map if (map.containsKe…
CC4
CC4: 影响版本: JDK 8 Commons-Collections:4 TransformingComparator类: 入口:compare()函数 public int compare(final I obj1, final I obj2) { final O value1 = this.transformer.transform(obj…
CC3
CC3: 这个链子主要是用于Runtime类用不了的时候,原理就是用类似类加载器的方法从字节中创立一个恶意对象出来。 环境: jdk8u71以前 Commons-Collections <= 3.2.1 TemplatesImpl类: 先看入口: 类加载器的defineClass()本来是protected类型,且知识加载类,不执行类。要额外…