avatar
文章
24
标签
16
分类
1

shallot's blog

shallot's blog

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 ...
java 反射机制学习
发表于2025-03-25
初学java安全 3.24一直对java安全处于一个简单了解但是一直迫切学习的阶段 希望可以写一篇博客来督促自己深入学习java安全的知识 java反射java反射机制是指在java代码执行过程中,对于任意一个类,可以获取这个类的属性与方法;对于任意一个对象,可以获取、修改这个对象的属性值,调用对象的方法。这种动态获取信息和调用方法的技术就是java中的反射机制。 class对象参考了 12https://zhuanlan.zhihu.com/p/456898438 class类是一个类,而class对象是它的对象. 用文章中的一张图片来理解 class类用来描述类的元数据,每个类都有一个与之关联的class对象,这些在面向对象中都有涉及 每个类都有且仅有一个class对象。通过类和对象都能获取到类的class对象,获取到class对象有下面三种方式。 1.Student.class //通过类名.class的方式获取class对象 2.stu1.getClass() //通过类对象.getClass()的方式获取class对象 3.Class ...
春秋云镜 Certify
发表于2025-03-10
春秋云境 Certify域渗透·学习再碰春秋云境已经过去好几个月了,偷偷吐槽一下感觉真心有点贵( 外网打点首先用fscan对靶机进行扫描,发现8983端口有solr服务,打开网址查看打开之后发现网站启用了log4j2,可能存在JNDI注入漏洞,CVE-2021-44228。 漏洞的主要原理是log4j开放了lookup功能 1Log4j2的Lookup主要功能是通过引用一些变量,往日志中添加动态的值。这些变量可以是外部环境变量,也可以是MDC中的变量,还可以是日志上下文数据等。 而lookup功能是可以支持jndi的 12JNDI(Java Naming and Directory Interface,Java命名和目录接口)是SUN公司提供的一种标准的Java命名系统接口,JNDI提供统一的客户端API,通过不同的访问提供者接口JNDI服务供应接口(SPI)的实现,由管理者将JNDI API映射为特定的命名服务和目录系统,使得Java应用程序可以和这些命名服务和目录服务之间进行交互。JNDI注入主要是用过下载远程class,来运行恶意代码。JNDI注入攻击时常用的就是通过RMI和 ...
123
avatar
shallot
文章
24
标签
16
分类
1
Follow Me
公告
This is my Blog
最新文章
CVE-2025-1974漏洞复现2025-04-28
java Commons Collection1链学习2025-04-15
java 动态代理2025-04-15
利用SpringBoot实现websocket通信2025-04-06
java JNI基础2025-03-31
分类
  • hgame-mini wp1
标签
web python 云安全 PHP 反序列化 文件上传 java 渗透 PHP PHP md5 碰撞 web java安全 图片隐写 misc web PHP 文件上传 PHP 伪协议 一句话木马 xxe注入
归档
  • 四月 20254
  • 三月 20256
  • 十二月 20241
  • 五月 20245
  • 一月 20242
  • 十二月 20233
  • 十一月 20233
网站资讯
文章数目 :
24
本站访客数 :
本站总访问量 :
最后更新时间 :
©2020 - 2025 By shallot
框架 Hexo|主题 Butterfly