再看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进行 ...
红日靶场三
环境配置打开虚拟机镜像为挂起状态,第一时间进行快照,部分服务未做自启,重启后无法自动运行。
挂起状态,账号已默认登陆,centos为出网机,第一次运行,需重新获取桥接模式网卡ip,也就是重启一下
除重新获取ip,不建议进行任何虚拟机操作。
目标:域控中存在一份重要文件。
本次环境为黑盒测试,不提供虚拟机账号密码。
作废了😭两台Linux靶机运行不了,只能强制重启才能用,但是这样就不是登录状态了,然后账号密码也不知道,直接死在搭建环境了
只能看看别人的打靶过程了。
Spring内存马学习
前言Spring框架比较常用就不说了,网上大部分都是建一个spring+springmvc的项目来测试内存马,内存马主要的逻辑部分都集中在springmvc的部分,因为负责处理路由请求基本都是都是需要经由springmvc,所以我看也有叫springmvc内存马的。
我这里就直接搭一个springboot项目比较方便了,反正本身也是有springmvc的,所以内部逻辑也是一样分析
版本如下
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.5.10</version> <relativePath/> <!-- lookup parent from repository --></parent>
Controller内存马Contoller注册流程我们要先知道Control ...
RASP绕过学习
RASP介绍RASP全称是Runtime applicaion self-protection,在2014念提出的一种应用程序自我保护技术,将防护功能注入到应用程序之中,通过少量的Hook函数监测程序的运行,根据当前的上下文环境实时阻断攻击事件。
目前Java RASP主要是通过Instrumentation编写Agent的形式,在Agent的premain和agentmain中加入检测类一般继承于ClassFileTransformer,当程序运行进来的时候,通过类中的transform检测字节码文件中是否有一些敏感的类文件,比如ProcessImpl等。简单的可以理解为通过Instrumentation来对JVM进行实时监控。
Instrumentation API 提供了两个核心接口:ClassFileTransformer 和 Instrumentation。ClassFileTransformer 接口允许开发者在类加载前或类重新定义时对字节码进行转换。Instrumentation 接口则提供了启动时代理和重新定义类的能力
Java Agent存在premain和agent ...