avatar
文章
26
标签
18
分类
1

shallot's blog

shallot's blog

fastjson 多版本代码调试➕漏洞复现
发表于2025-11-24
之前的话复现过fastjson 1.2.24的版本,后面面试发现很多面试官会问到后续版本的再利用,正好利用这段时间研究一下。 fastjson 1.2.24这里先打一遍基础版本的,本地写个代码,然后打断点调试看看参考了这些文章 https://forum.butian.net/share/3055https://www.javasec.org/java-vuls/FastJson.html 1234567891011121314151617181920212223242526272829303132333435363738394041package org.example;import com.alibaba.fastjson.JSON;public class Main { public static void main(String[] args) { // 将一个 Java 对象序列化为 JSON 字符串 Person person = new Person("Alice", 18); Str ...
misc学习笔记
发表于2025-11-07
misc学习笔记省赛组队之后感觉team里面可以来点数据安全和misc,之前也学过一些,这段时间就系统的学习一下,以下内容仅仅是个人学习!!并且也可以当作不出网参考材料 一举两得desuwa 题外话(省赛加油哇哇哇哇!!!! 隐写这个其实之前已经学过了,很多东西大概都过一遍,再记录一下怎么装工具叭~ 主要参考了这几篇文章,写的相当不错 https://cloud.tencent.com/developer/article/2130795 https://forum.butian.net/share/340 常见文件头总结文件类型大部分是由文件头决定的,这也是经常出题的一点。查看文件头的话可以用010editer 比如这个就是一个png文件 总结一下常见的文件头(老图): 图片隐写1、附加式的图片隐写(1)附加字符串 操作系统识别,从文件头标志,到文件的结束标志位当系统识别到图片的结束标志位后,默认是不再继续识别的所以可以在文件尾后面加东西,这种算是比较基础的,010翻到最底下就能看见了。 (2)隐藏压缩文件 可以把压缩文件藏在图片文件尾后,看起来还是图片。 解决方法就是binwalk ...
CVE-2025-1974漏洞复现
发表于2025-04-28
近期,Ingress-Nginx爆出CVSS评分高达9.8的RCE漏洞,这里对其做了漏洞复现和原理分析。 主要是分享会看到l1nk的分享,觉得很有意思,来学习一下。 参考了 123https://forum.butian.net/article/686https://mp.weixin.qq.com/s?__biz=MzIyMjkzMzY4Ng==&mid=2247510464&idx=1&sn=589619486495a9436e8a5e728826c914&chksm=e93c65043fa6abecb1a4d293a7a3905003241e0cb7daca4fbcdcca0de40c8bdbe3232bf90811&forbs=1&scene=126&subscene=91&sessionid=1743470868&flutter_pos=1&clicktime=1743470870&enterid=1743470870&finder_biz_enter_id=5&ascen ...
java Commons Collection1链学习
发表于2025-04-15
java 安全学习笔记Java反序列化漏洞学习 Commons Collection参考了这位博主的文章 1https://tttang.com/archive/1337/ 题外话是最近参加hvv,太坐牢了爬回来学会java回回血说是(( 环境搭建在学习Commons Collection利用链之前我们需要先搭建好调试环境,第一步就是安装JDK和maven了这里我推荐多安装多几个版本的JDK,因为有的利用会有版本的限制,我们在分析这些利用链是需要切换指定的JDK。安装好JDK和maven后需要配置好idea的环境,然后需要克隆ysoserial的源码下来,之后的调试我们会在ysoserial的项目中进行,因为ysoserial中配好了我们所需要的库环境,我们只需要利用maven将各种包导入即可。最后就是在项目中创建好我们的测试文件夹。 URLDNSURLDNS利用链是java反序列化攻击中一种非常经典的“无回显”探测链,用于探测目标是否存在反序列化漏洞,利用的是URL和HashMap的特性,触发一次DNS请求。 核心原理是:1、java的URL类在HashCOde()时会尝试解析主机 ...
java 动态代理
发表于2025-04-15
java学习笔记Java 动态代理Java反射提供了一种类动态代理机制,可以通过代理接口实现类来完成程序无侵入式扩展。 Java动态代理主要使用场景: 统计方法执行所耗时间。 在方法执行前后添加日志。 检测方法的参数或返回值。 方法访问权限控制。 方法Mock测试。 1234什么是 Mock 测试?Mock 测试(模拟测试)是一种测试方法,通过创建一个“假对象”(Mock 对象)来模拟真实对象的行为,从而在测试中替代依赖的外部组件。简单来说:当你测试一个类时,如果它依赖其他类(比如数据库、服务),你可以用 Mock 对象假装这些依赖的行为,而不用真的去调用它们。 动态代理API创建动态代理类会使用到java.lang.reflect.Proxy类和java.lang.reflect.InvocationHandler接口。java.lang.reflect.Proxy主要用于生成动态代理类Class、创建代理类实例,该类实现了java.io.Serializable接口。 分析java.lang.reflect.Proxy的源码:从这次开始学习一下怎么进行源码审计吧( 1public ...
利用SpringBoot实现websocket通信
发表于2025-04-06
Spring WebSocket实现实时通信的详细教程WebSocket 是基于TCP/IP协议,独立于HTTP协议的通信协议。WebSocket 连接允许客户端和服务器之间的全双工通信,以便任何一方都可以通过已建立的连接将数据推送到另一方。 我们常用的HTTP是客户端通过「请求-响应」的方式与服务器建立通信的,必须是客户端主动触发的行为,服务端只是做好接口被动等待请求。而在某些场景下的动作,是需要服务端主动触发的,比如向客户端发送消息、实时通讯、远程控制等。客户端是不知道这些动作几时触发的,假如用HTTP的方式,那么设备端需要不断轮询服务端,这样的方式对服务器压力太大,同时产生很多无效请求,且具有延迟性。于是才采用可以建立双向通讯的长连接协议。通过握手建立连接后,服务端可以实时发送数据与指令到设备端,服务器压力小。 理解java spring boot框架工厂模式在学习Spring WebSocket的时候,发现很多教程都是使用工厂模式来创建WebSocketHandler和HandshakeInterceptor,但是不知道工厂模式的具体作用。所以专门学习了一下 在Spr ...
java JNI基础
发表于2025-03-31
java学习笔记依旧是参考: 1https://www.javasec.org/javase/JNI/ 只不过版本有点老,会报一些错误,还是建议自己再修改代码 URLConnection在java中,Java抽象出来了一个URLConnection类,它用来表示应用程序以及与URL建立通信连接的所有类的超类,通过URL类中的openConnection方法获取到URLConnection的类对象。 URLConnection:是所有与 URL 建立通信的类的父类。具体的协议支持类(如 HTTP、FTP 等)会继承 URLConnection。 使用URL发起一个简单的请求: 123456789101112131415161718192021222324252627package org.example;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.URL;import java.net.URLConnection;publ ...
java JDBC 基础
发表于2025-03-28
java学习笔记JDBC 基础之前一直有简单的了解,今天依靠着文档希望可以系统深入的学习一下 其实内心觉得学的还是有点慢了,希望后面可以加快进度 依旧是参考 1https://www.javasec.org/javase/JDBC/ 很详细很全面的一篇文章,可以学到很多东西 JDBC(Java Database Connectivity)是Java提供对数据库进行连接、操作的标准API。Java自身并不会去实现对数据库的连接、查询、更新等操作而是通过抽象出数据库操作的API接口(JDBC),不同的数据库提供商必须实现JDBC定义的接口从而也就实现了对数据库的一系列操作 JDBC ConnectionJava通过java.sql.DriverManager来管理所有数据库的驱动注册,所以如果想要建立数据库连接需要先在java.sql.DriverManager中注册对应的驱动类,然后调用getConnection方法才能连接上数据库。 JDBC定义了一个叫java.sql.Driver的接口类负责实现对数据库的连接,所有的数据库驱动包都必须实现这个接口才能够完成数据库的连接操作。java ...
java 本地命令执行
发表于2025-03-27
java 学习笔记依旧是参考了 1https://www.javasec.org/javase/CommandExecution/ 协会很多人在推荐的文章 Java本地命令执行平时其实利用的已经很多了就不再赘述了,简单看了看就过掉了 Runtime命令执行在Java中我们通常会使用java.lang.Runtime类的exec方法来执行本地系统命令 跟着文档学习一下这个方法的调用链如下: 1234567java.lang.UNIXProcess.<init>(UNIXProcess.java:247)java.lang.ProcessImpl.start(ProcessImpl.java:134)java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)java.lang.Runtime.exec(Runtime.java:620)java.lang.Runtime.exec(Runtime.java:450)java.lang.Runtime.exec(Runtime.java:347)org.apache.jsp.r ...
java 文件安全
发表于2025-03-26
java学习笔记sun.misc.Unsafesun.misc.Unsafe是Java底层API(仅限Java内部使用,反射可调用)提供的一个神奇的Java类,Unsafe提供了非常底层的内存、CAS、线程调度、类、对象等操作。 参考 1https://zhuanlan.zhihu.com/p/348052930 1https://www.javasec.org/javase/Unsafe/ 如何获取Unsafe对象在使用Unsafe之前,我们需要创建Unsafe对象的实例。这并不像Unsafe unsafe = new Unsafe()这么简单,因为Unsafe的构造器是私有的。它也有一个静态的getUnsafe()方法,但如果你直接调用Unsafe.getUnsafe(),你可能会得到SecurityException异常。只能从受信任的代码中使用这个方法。 sun.misc.Unsafe代码片段: 123456789101112131415161718192021222324252627import sun.reflect.CallerSensitive;import ...
123
avatar
shallot
文章
26
标签
18
分类
1
Follow Me
公告
This is my Blog
最新文章
fastjson 多版本代码调试➕漏洞复现2025-11-24
misc学习笔记2025-11-07
CVE-2025-1974漏洞复现2025-04-28
java Commons Collection1链学习2025-04-15
java 动态代理2025-04-15
分类
  • hgame-mini wp1
标签
PHP PHP 文件上传 java PHP md5 碰撞 web python PHP 伪协议 文件上传 PHP 反序列化 渗透 一句话木马 xxe注入 云安全 java 反序列化 misc web web 图片隐写 CTF misc java安全
归档
  • 十一月 20252
  • 四月 20254
  • 三月 20256
  • 十二月 20241
  • 五月 20245
  • 一月 20242
  • 十二月 20233
  • 十一月 20233
网站资讯
文章数目 :
26
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By shallot
框架 Hexo|主题 Butterfly