Java远程调试
最近想看看weblogic,但是环境比较难搭建和调试,趁着这个机会,看一下java的各种代码远程调试的方法,很基础的东西了,一直没看。(顺便水一篇博客)
远程调试Jar包主要在只有jar包无源码的情况下进行调试。
这里以冰蝎的jar包为例子
随便开一个java项目,然后我们创建一个lib目录然后放入jar包
右键选择Add as Library,将lib文件夹添加进项目依赖
然后就可以看到jar包中反编译的源代码了
然后我们添加一个Remote JVM Debug的Configuration
然后默认配置Apply提交并保存即可,其中-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005将作为运行时的启动参数
然后将-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005作为启动参数运行jar包
suspend表示是否暂停程序等待调试器连接,”y”表示暂停,”n”表示不暂停,这里还是要选择暂停,上面默认的是不暂停导致我调 ...
BookManager复现
前言当时ciscn&长城杯场上的一题零解题,当时反编译看了一下这题的源码,发现是微服务形式的,有个ApiGateway,然后看了半天也找不到反序列化的点,甚至连请求哪个路由都不清楚🥲然后用的又是solon这个框架不熟悉,直接开摆了
后来看到有师傅解出来了,遂来复现一下
复现看了一下才发现网关这里限制了我们的路由前缀(没学过不太懂😭,怪不得直接getAllBooks什么都没有
直接问deepseek的解释如下:
这段代码实现了一个 API 网关,主要功能包括:
路由匹配:
所有以 /api/rest/ 开头的请求都会被该网关处理。
例如,/api/rest/book 会被映射到 BookServiceImpl 类。
前置逻辑:
在请求处理之前,设置默认的响应渲染格式为 JSON。
服务注册:
将 BookServiceImpl 类注册为处理 /api/rest/book 路径的服务。
这里可以看到用的是solon的2.5.12的版本,当时直接搜是没有搜到该版本的漏洞的,一搜反序列化基本都是2.5.11的
然后这位老哥是从github的issue翻到相 ...
DASCTF12月最后一战复现
2024年最后一次的das,web终于也是没有爆零了,最后一题的1解题看了gxn大哥的wp也是学到新东西了,这里记录一下
官方wp:https://www.yuque.com/chuangfeimeiyigeren/eeii37/oxv3gaim7fr89ed2?singleDoc
const_python题目源码:
import builtinsimport ioimport sysimport uuidfrom flask import Flask, request,jsonify,sessionimport pickleimport base64app = Flask(__name__)app.config['SECRET_KEY'] = str(uuid.uuid4()).replace("-", "")class User: def __init__(self, username, password, auth='ctfer'): self.username = usernam ...
再看Thymeleaf
再来水一篇Thymeleaf的ssti,起因是看到师兄以前出的题目,里面有一点小坑,索引就把Thymeleaf稍微高版本一些的漏洞再记录一下
thymeleaf高版本利用上一篇文章只说了3.0.11版本之前的利用,后几个版本的利用方式发生了变化,记录一下
thymeleaf和springboot对应的版本
SpringBoot Thymeleaf2.2.0.RELEASE 3.0.112.4.10 3.0.122.7.18 3.0.153.0.8 3.1.13.2.2 3.1.2
3.0.12版本利用打一下原来的payload看看报错
http://localhost:8081/doc/__$%7bnew%20java.util.Scanner(T(java.lang.Runtime).getRuntime().exec(%22calc.exe%22).getInputStream()).next()%7d__::.x
可以看到他识别出了表达式并禁止了表达式执行,我们可以从调用堆栈看到他报错的地方,在S ...
SPEL表达式注入
赶紧来补一下SPEL表达式注入,前面Thymeleaf本质用的就是SPEL表达式
简介Spring表达式语言(简称 SpEL,全称Spring Expression Language)是一种功能强大的表达式语言,支持在运行时查询和操作对象图。它语法类似于OGNL,MVEL和JBoss EL,在方法调用和基本的字符串模板提供了极大地便利,也开发减轻了Java代码量。另外 , SpEL是Spring产品组合中表达评估的基础,但它并不直接与Spring绑定,可以独立使用。
Demo示例package org.clown.springbootmemoryshell.contorller.spel;import org.springframework.expression.Expression;import org.springframework.expression.ExpressionParser;import org.springframework.expression.spel.standard.SpelExpressionParser;import org.springframewor ...
thymeleaf模板注入
最近实在是不知道看什么了,来学一下和java相关的一些ssti吧,先从thymeleaf开始
介绍Thymeleaf就是一个模板渲染引擎,和python的jinjia2一样,就不需要过多介绍了
官方文档:https://www.thymeleaf.org/documentation.html
高版本SpringBoot/Thymeleaf不存在模板注入问题,这里SpringBoot版本为2.5.10(实测得2.4.1,2.5.10已经不行了),Thymeleaf同上
Demo示例首先就是创建一个springboot项目,我们的thymeleaf文件就写在templates目录下
创建项目的时候可以勾选thymeleaf模板引擎
一个基础的index.html
<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head> <meta charset="UTF-8"> <title>title< ...
Tabby使用学习
环境配置跟着官方环境来,但是具体上又有点出入,所以记录一下详细步骤,官方文档:https://www.yuque.com/wh1t3p1g/tp0c1t/rmm0aimycci76ysm
首先官网下载tabby的zip文件:https://github.com/wh1t3p1g/tabby/releases/,里面所有需要的东西都包含了
数据库配置这一步比较重要,文档里面要的apoc插件和tabby-path-finder插件都包含在官方的zip里面了
然后新建一个Neo4j项目来给tabby使用,同时创建一个DBMS
里面有一个默认的neo4j数据库,用这个就好了
然后配置tabby的数据库账号密码,tabby >= 1.3.x 版本的数据库配置放置于 config/db.properties,我这里没有这个文件,所以手动创建了一个文件
# for dockertabby.cache.isDockerImportPath = false# db settingstabby.neo4j.username ...
红日靶场五
环境搭建虚拟机密码
win7
sun\heart 123.com
sun\Administrator dc123.com(因为过期了,改成Admin12345)
2008
sun\admin 2020.com(改成2022.com)
Win7双网卡模拟内外网
仅主机模式网卡:192.168.138.0
NAT模式网卡:192.168.135.0
配置好后需要进入win7主机将phpstudy服务开起来
emmm试了一下又是不能ping通的,但是网页能正常访问
考点思路一、环境搭建
1.环境搭建测试
2.信息收集
二、漏洞利用
3.漏洞搜索与利用
4.漏洞利用Getshell
5.系统信息收集
6.主机密码收集
三、内网搜集
7.内网–继续信息收集
8.内网攻击姿势–MS14-058
9.内网攻击姿势–MS17-010
四、横向移动
10.psexec远控
11.内网其它主机端口
12.netsh增删防火墙规则
五、构建通道
13.内网其它主机端口-代理转发
六、持久控制
14.域渗透-域成员信息收集
15.域渗透-基础服务弱口令探测及深 ...
DASCtf-easyjob
环境搭建由于题目是公共靶机现在已经挂了,所以复现需要自己搭建题目环境
跟着这篇文章来配置一下:https://www.cnblogs.com/vickey-wu/p/9087951.html
主要是admin组件的配置,因为他是一个war,需要部署在tomcat上,executor是springboot应用,直接java -jar就行了
mysql配置
# 启动数据库docker run -itd --name xxl-mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql:5.6.40# 复制sql到容器中docker cp <xxl-job的sql文件> xxl-mysql:/tmp# 进入容器连接数据库mysql -uroot -p123456# 执行命令导入数据库source /tmp/tables_xxl_job.sql
然后本地编译一下xxl-job的admin项目,我们需要他war包解压后的文件夹,配置文件需要修改一下,xxl.job.db.password属性改成刚刚的数据库的密码
然后写一个dock ...
红日靶场四
因为兼容性已经似了两个靶场,求求你别似了
环境搭建两张网卡,一张VMnet0和VMnet1都是仅主机模式
web靶机
win7
DC
靶场拓扑图
我们启动之后要去web靶机里面启动三个容器服务
我们启动前三个容器服务即可
然后我们的攻击机自然也要在VMnet0的网段
好欸靶机终于活了一次了😭
机器密码
ubuntu:ubuntu 域成员机器
douser:Dotest123 DC
administrator:Test2008(改成 Admin123 因为过期了)
考点描述本次靶场渗透反序列化漏洞、命令执行漏洞、Tomcat漏洞、MS系列漏洞、端口转发漏洞、以及域渗透等多种组合漏洞
靶场学习路径,可参考
st漏洞利用
phpmyadmin getshell
tomcat 漏洞利用
docker逃逸
ms14-068
ssh密钥利用
流量转发
历史命令信息泄露
域渗透
信息收集先用arp-scan扫一下同一网段内的主机,指定对应的网卡接口
arp-scan -I eth1 -l
那可以得知192.168.157.128就是我们的外网web靶机
接下来用nmap进行 ...