Java代码审计1-XXE
项目环境搭建https://github.com/JoyChou93/java-sec-code/
下载下来之后直接用docker启动即可。
create_db.sql中写了用户名与密码,直接登录:
为了防止与burp冲突,我在docker-compose中把开放端口改为1145。
XXE代码审计
红日靶场vulnstack1-复现
环境搭建添加VMnet2网卡,仅主机模式,模拟内网环境。
VM8模拟外网(和kali攻击机在同一网段中)
Windows 7
我的本地已经开启kali虚拟机,在VM8网段中。
测试连通性:
没问题。
接下来手动关闭Win7的防火墙(控制面板-系统与安全),防止我们的kali机子连不到win7。
还有一点需要注意!
把外网网卡的ip改为和kali位于同一网段。(kali在192.168.80.128)
ping通了:
Win7开启web服务:
Win2008 与 Win2K3配置选择VM2网卡即可。
渗透流程nmap -sN参数锁定外网网段目标:
探测开放端口:(-p-)
外网打点访问192.168.80.111的80端口:
这里能看到这个web服务在Windows中的绝对路径:C:/phpStudy/WWW
用dirsearch爆目录,发现有phpmyadmin路由。
随便猜账号密码都是root,没想到真登入进去了:
能登到这个后台,就有很多种办法利用SQL来GetShell了。
准备利用SQL语句来写webshell,因为前面我们已经知晓了web路径。
然而失败了 ...
Java内存马-Listener马
前置知识About Listener
监听器用于监听web应用中某些对象、信息的创建、销毁、增加,修改,删除等动作的发生,然后作出相应的响应处理。当域对象的状态发生变化的时候,服务器自动调用监听器对象中的方法。
我们研究Listener内存马,基于实际应用层面,只围绕监听ServletRequest域对象展开,因为Listener监听此对象后,无论用户访问哪一个路由都会自动调用监听器中的方法。
Listener实现demoListener装上ServletRequestListener接口,即可被任何来自用户的路由访问而触发:
12345678910111213141516171819202122package com.xiaofuc.listenershell;import jakarta.servlet.ServletRequestEvent;import jakarta.servlet.ServletRequestListener;import jakarta.servlet.annotation.WebListener;import java.util.EventListen ...
记一次Docker出题记录
前言上学期新生赛前夕(2024.7.2~2024.10.1),我一直很苦恼怎样用docker出ctf-web题,我那时候有一个很错误的思维:我要先把docker学明白了,再去动手实践弄这些。
再加上我暑假以及开学后很长一段时间受一些事情干扰很重,那段时间有点摆大烂(别学我…)。然后我的题在新生赛上闹了个笑话:原本是一个文件包含题,直接在url中输入flag即可拿到。。
这次辅导员突然叫我们给自家专业搞个CTF小比赛,刚好练下我的docker技术。
这道题目出得很简单了,勿喷。。
About DockerDocker到底是个啥,我从我个人的理解出发简单说说:
假设一个程序需要在A操作系统下配置B环境再加上C的依赖,如果没有docker,而且情况又不那么理想下:
我是B系统,我要现在虚拟机中整个A系统,再配环境配依赖七七八八的,特别特别麻烦。
但是docker的出现让我们能够把构建环境的一整个过程写在一个配置文件中(dockerfile),让docker把这个单独的环境给还原。这样就不必大炮打蚊子。而且方便传输。
几个重要的基础概念dockerfileDockerfile 是一个文本文件, ...
Jackson反序列化漏洞
About Jackson
Jackson 是一个开源的Java序列化和反序列化工具,可以将 Java 对象序列化为 XML 或 JSON 格式的字符串,以及将 XML 或 JSON 格式的字符串反序列化为 Java 对象。
环境配置1234567891011121314151617<dependencies> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.7.9</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</ar ...
Java-CTF题目大杂烩
参考infernity师傅的:文章 - PolarCTF靶场 WEB方向java题目全题解 - 先知社区
ezjava源码:
一眼丁真看到parseExpression函数,鉴定为:SpEL注入。
试着用最基本的Runtime执行命令:
ls /没报错,鉴定为Linux,无回显。
打无回显Payload:
Fastjson踩坑!踩坑!
Spring内存马:
12345678910111213141516171819202122232425262728293031323334import com.sun.org.apache.xalan.internal.xsltc.DOM;import com.sun.org.apache.xalan.internal.xsltc.TransletException;import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet;import com.sun.org.apache.xml.internal.dtm.DTMAxisIterator;import ...
SpEL注入学习
About SpELSpEL(Spring Expression Language,Spring 表达式语言) 是 Spring 框架提供的一种强大的表达式语言,允许在运行时解析和执行动态表达式。SpEL 可用于 访问对象属性、调用方法、执行数学运算、逻辑运算,甚至可以调用 Java 反射或执行 Bean 操作。
基本符号
SpEL注入漏洞漏洞环境配置:
https://github.com/LandGrey/SpringBootVulExploit/tree/master/repository/springboot-spel-rce
JDK:8u65
来简单看下下面两种漏洞代码的区别:
123456@RequestMapping("/article") public String spelInjection(@RequestParam String expression) { ExpressionParser parser = new SpelExpressionParser(); Expression exp = parse ...
CB链
前言&环境配置CB是指Apache Commons Beanutils这个库:
Apache Commons Beanutils 是 Apache Commons 工具集下的另一个项目,它提供了对普通Java类对象(也称为JavaBean)的一些操作方法。
一个标准类里面的属性均为私有,并且针对每一个属性来说均有读取和设置这个属性的两个方法,又称为getter和setter。这样的类就叫做JavaBean
JDK8
pom.xml:
1234567891011121314151617<dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-beanutils</artifactId> <version>1.9.2</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-collections ...
Redis漏洞学习
Redis基础
一种开源数据库,内容以键值对的方式进行存储。
通常部署在6379端口
RDB模式RDB(Redis Database File)是 Redis 提供的一种 持久化方式,它会在指定的时间间隔内,将 整个数据快照 保存到磁盘(.rdb 文件),以便在 Redis 重新启动时恢复数据。
SAVE 命令用于 手动触发 RDB 持久化,它会阻塞 Redis 服务器,并将当前内存中的数据保存到磁盘上的 .rdb 文件。
基于RDB模式,我们很容易利用Redis写恶意文件:
123456如果 Redis 允许远程访问,并且没有设置 身份验证,攻击者可以使用:CONFIG SET dir /var/www/htmlCONFIG SET dbfilename shell.phpSAVE这会让 Redis 在 /var/www/html/shell.php 生成一个伪造的 RDB 文件,可能包含 WebShell。
Redis常用命令:1234567891011121314151617set xz "Hacker" # 设 ...
Java内存马-Filter马
项目搭建法一有些基本步骤见上篇(基础篇)
我这里踩了好多坑,有很多地方大家需要注意的:
web.xml:
1234567891011<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <filter> <filter-name>filter</filter-name> ...