Java反序列化漏洞
序列化与反序列化基础什么是序列化与反序列化?序列化是将复杂的数据结构或对象转换为字节序列的过程,以便于在网络上传输、存储或持久化,在序列化过程中,对象的状态被转换成字节流,使得它可以被写入文件或通过网络发送。
反序列化则是序列化的逆过程,即将序列化后的字节流转换回原始的数据结构或对象,在反序列化过程中,从序列化后的数据中提取出原始对象的状态,并将其重新构建为内存中的对象,这使得数据可以从持久化的状态重新恢复为原始的可操作对象,以便进行进一步的处理或使用。
这两个过程通常用于在不同系统之间进行数据交换,例如在客户端和服务器之间、不同编程语言之间、或者将对象持久化到数据库或磁盘上。
常见的序列化有二进制格式的,譬如 Java Serialization、Ruby Marshal 等;人类可读格式的,如 JSON、XML、YAML 等;以及混合格式的,如 Python pickle、PHP Serialization 等。
序列化与反序列化在 Java 中的实现Java 序列化在 Java 中,如果要使一个类可序列化,只需该类实现Serializable接口,Serializable是一个标 ...
亿赛通电子文档安全管理系统XStream反序列化远程代码执行漏洞
漏洞简介亿赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全防护软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产。亿赛通电子文档安全管理系统引用了低版本存在反序列化漏洞的 XStream 库,攻击者可利用该漏洞对服务器上传任意文件,进而控制服务器权限。
影响版本
<= 820
漏洞分析依赖位于WEB-INF/lib/jhiberest.jar文件,反编译后可以很明显的发现存在 XStream 的写法,并且 XStream 的版本用的也是低版本的,1.4.9 版本。
同时,此类在 web.xml 文件中的对应关系如下,由于 CDG 的 Web 根路径是/CDGServer3,那么当请求路径是/CDGServer3/SystemService时,请求将会由如下com.esafenet.servlet.service.cdgfile.SystemService类来处理。
123456<servlet> <servlet-name>SystemService</serv ...
流行代理软件Clash CSRF未授权配置重载致使RCE
关于 Clash名词解释
Clash
一个使用 Golang 编写的,支持 Shadowsocks(R)、VMess、Trojan、Snell、SOCKS5、HTTP(S)等多个代理协议的代理工具。
ClashX
旨在提供一个简单轻量化的开源 GUI 代理客户端,编写于 Swift,仅支持 MacOS 平台。
Clash for Windows(简称 CFW,后面统一使用简称)
编写于 Electron 的闭源 GUI 代理客户端,支持 Windows/MacOS/Linux 多个平台。
以上是目前最流行的三款 Clash 系列相关的软件,Clash 和 ClashX 源代码都是开源的,CFW 是闭源的,ClashX 与 CFW 这两个 GUI 工具的核心依然是前者 Clash,即 Clash 是 ClashX 与 CFW 的上游。
基本使用Linux 平台在 Linux 平台上,一般都是直接用 go 安装 CLI 的 Clash 进行使用。
123$ go install github.com/Dreamacro/clash@latest$ clash - ...
Java程序远程调试
Jar 包针对 Jar 包的远程调试,就拿 Behinder 举例,首先 IDEA 新建一个项目,并在项目中创建一个 lib 文件夹,将 Behinder 的 Jar 包放入其中,右击该 Jar 包选择作为库添加(Add as Library…),对弹出的窗口点击 OK。现在就能看到 Behinder Jar 包中反编译后的源码。
下一步,点击上图右上边的编辑配置(Add Configurations…),进入到如下窗口,单击左上角的+,选择 Remote JVM Debug,修改下名称,其他默认保持不变,不过需要注意端口冲突,如下第二张图所示。
最后,将上图中的参数添加至运行命令中,不过需要注意的一点是将 suspend 参数值修改为 y,它表示是否暂停程序等待调试器的连接。最终,使用如下命令将 Behinder 启动起来。
1234# lsBehinder.jar data.db server 更新日志.txt# java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspe ...
Tomcat Filter型内存马
Filter 简介在 Tomcat 中,Filter(过滤器)是 Java Servlet API 的一部分,用于在请求到达 Servlet 之前或在响应返回客户端之前对请求和响应进行处理。Filter 可以对请求和响应进行修改、记录、验证等操作,它提供了一种灵活的机制来处理 Web 应用中的公共任务。
Filter 实现要实现一个 Filter,首先需要创建一个实现 javax.servlet.Filter 接口的类,并实现如下三个方法。
init(FilterConfig config):初始化方法,在 Filter 创建时调用。
doFilter(ServletRequest request, ServletResponse response, FilterChain chain):主要的过滤逻辑方法,在每次请求时调用。
destroy():销毁方法,在 Filter 销毁时调用。
123456789101112131415161718192021222324package com.tomcatdemo.filter;import javax.servlet.*;import ...
同迅神行者路由doLoginOut未授权RCE
引子
某次HW期间看到该漏洞的利用,遂尝试分析一番。
漏洞简介同迅神行者路由通过系统管理、网络管理、策略管理、监控统计、面板管理五大人机互动管理功能,对流经的所有应用数据进行实时监控与管理。神行者路由流控产品存在未授权命令注入漏洞,攻击者可以利用该漏洞对服务器执行任意命令。
固件下载分析找到厂商官网,下载中心可以直接获取到路由固件包。
这里直接对 ISO 相关文件进行解压,发现 Web 目录结构如下,若要尝试搭建可以见官方文档,此外,路由默认账号密码是 admin:sxzros。
Python 代码审计首先直接查看路由的分配,如下。
1234567891011121314151617# @Filename: urls.pyurlpatterns = [ url(r'^favicon.ico$',RedirectView.as_view(url=r'static/assets/img/favicon.ico')), #登录 url(r'^$','xapp.vLogin.index'), url( ...
Jspxcms审计记录
技术栈该项目使用了 SpringMVC 框架、Spring Data JPA 框架,Hibernate 作为数据库持久化框架,Shiro 作为安全框架,以及 Freemarker 模版引擎。
组件依赖通过观察 Maven 同步的依赖库,发现部分使用的组件和版本如下。
组件
版本
commons-beanutils
1.9.3
commons-collections
3.2.2
commons-logging
1.1.3
freemarker
2.3.28
shiro-core
1.3.2
hibernate-core
5.0.12
log4j
1.2.17
snakeyaml
1.17
功能点熟悉在正式进行审计前,应当对这个 Web 应用的相关功能点了解的足够全面、足够熟悉。
由于该项目是个开源项目,在官网也提供了使用手册,通过查阅文档可以更加全面的了解该应用的所有功能点。当然,也可以在安装该环境后,自行探索相关功能点。
默认不安全配置通过查阅文档发现该应用存在管理后台。
管理员账户名为 admin,默认无密码就可以直接登录进去。除此之外, ...
CVE-2021-44228 Log4j2 JNDI注入漏洞
漏洞简介Apache Log4j2 是一个通用的工业级 Java 日志框架,常用于 Java 应用中,如 Web 应用、分布式系统、微服务架构等,它能够帮助开发人员记录并追踪系统中的异常、性能问题和业务逻辑。
2021 年 12 月 9 日,存在于 Log4j2 JNDI 功能中的一个远程代码执行漏洞利用细节被公开,随即对全球范围内使用 Log4j2 的应用和系统产生了重大影响。
该漏洞的根本原因是源于 Log4j2 的日志消息解析机制存在缺陷,当日志消息中包含特定格式的字符串时,Log4j2 会尝试通过 JNDI 去解析和加载远程资源,而攻击者可以利用这一点发送恶意的日志消息,指向恶意的 LDAP 服务器,从而实现远程代码执行。
影响版本
2.0-beta9 ≤ Log4j2 ≤ 2.14.1
环境准备在一个 SpringBoot 项目中的 pom.xml 文件中添加如下 2.14.1 版本的 Log4j2 Maven 依赖。
1234567891011<dependency> <groupId>org.apache.logging.log4j< ...
针对校园某服务器的一次渗透测试
发现学校其中一台服务器可能(绝对)存在漏洞。我想(绝对)能拿下它;
而且渗透测试的过程很有趣,便将其记录下来。
前期交互及信息收集由于是对内网直接进行大扫描,所以直接判断这不仅是一个 Web 服务器(多个),同时还运行着 FTP、数据库。
在此,再次使用 nmap 扫描一次,结果如下:
1234567891011121314151617181920212223242526272829303132333435$ sudo nmap -T4 -n -sS -sV -O 192.168.3.72Nmap scan report for 192.168.3.72Host is up (0.00076s latency).Not shown: 974 closed portsPORT STATE SERVICE VERSION7/tcp open echo9/tcp open discard?13/tcp open daytime?17/tcp open qotd Windows q ...
DNS隧道绕过校园网认证
本文在绝大数人眼里或许是篇福利文;在此文中介绍如何通过 DNS TUNNEL 的方式来绕过校园网认证,实现免认证免费上网;或许此招式并不是最优解,但对于绝大多数校园认证网确实能够成功实现。
怎么说呢!其实我早盯上了校园网了。
场景分析吐槽在某所高校中,存在一家网络运营商,主要面向毫无收入的学生们,为我们提供日常上网冲浪。
其特点就是三字:贵、差、抠。每月 79 的高昂费用;网络质量差,打游戏经常 460,还只让三个设备使用。
虽然我打比赛有机房的免费 Wi-Fi 用,用不着此校园网,但我还是看不下去如此这般从学生身上赚钱的行为,不服这口气,遂有了本文。
信息收集在这所高校的网络中,统一使用的是 WiFi 热点客户端认证方式;当连上 WiFi 后,本机会向 DHCP 服务器获取一个内网 IP;关于这个 IP 地址,起初还让我很是疑惑,没想到在资源如此匮乏的大天朝,此运营商还会分一个公网 IP 给俺。
后来才知道这是个保留地址,详见其 维基百科 。
Address block
Scope
Description
100.64.0.0/10
私有网络
共享地址空 ...