跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Javajava

冰蝎 3.0 JSP Webshell 流量特征分析与实战

冰蝎 3.0 Webshell 的流量特征,包括 Content-Type、User-Agent 等 HTTP 头信息。通过 Wireshark 抓包分析,演示了如何识别黑客上传的 JSP 文件、获取解密 Key、还原执行的命令及文件内容。结合 CTF 靶场环境,展示了从流量筛选到最终获取 Flag 的完整流程,涉及 PUT 方法漏洞利用与 AES 加密解密技术。

黑客帝国发布于 2026/3/29更新于 2026/9/1284 浏览
冰蝎 3.0 JSP Webshell 流量特征分析与实战

一、冰蝎 3.0 流量特征

  • Content-Type POST 请求的 Content-Type 固定为 application/octet-stream,属于强特征。

文章配图

  • User-Agent 内置了 16 个 User-Agent 头,通信时会随机挑选一个,但大多为老旧浏览器或罕见设备头。如果同一 IP 频繁变换 UA 且为这 16 个之一,可以高度怀疑是冰蝎。
  • Accept、Cache-Control Accept 头常设为 Accept: text/html, image/gif, image/jpeg, */*; q=.2, */*; q=.2 或类似值,Cache-Control 和 Pragma 常设为 no-cache,表示直接从源服务器获取最新的响应,这些是冰蝎流量默认带的 HTTP 头,普通业务流量较少见。

在这里插入图片描述

  • Content-Length/请求包长度 因为冰蝎 3.0 使用 AES-256 加密算法,加密后的数据体积会膨胀,请求包长度一般会很大,超过正常业务范围。

文章配图

二、索引

文章配图

三、题目列表

步骤 1
黑客 IP 是什么?

先用 wireshark 语法筛选出 http 流量。

文章配图

快速分析一遍流量,大部分都是 404,说明黑客正在进行目录扫描。拉到最后那里可以看到有个异常流量,通过PUT 方法上传了 indeX.jsp 文件,且在请求头中伪造了多个指向本地地址的字段(如 X-Forwarded-For),这种组合是典型的攻击特征,由此可判定该请求为攻击者发起的恶意文件上传行为。

文章配图

因此黑客 IP 就是 192.168.31.61。

flag{192.168.31.61}
步骤 2
黑客上传的 Webshell 名是什么?

继续分析流量包,可以看到攻击者通过 POST 数据包与 indeX.jsp 进行通信,且响应内容为加密数据。

文章配图

因此 webshell 名就是这个文件。

flag{indeX.jsp}
步骤 3
黑客上传 WebShell 的时间是多少?(格式如:flag{YYYY-MM-DD HH:MM:SS})

找到刚才黑客通过PUT 方法上传的文件直接查看时间即可。

文章配图

flag{2025-02-22 07:47:38}
步骤 4
木马的解密 key 是什么?

同样也是 PUT 方法的那个流量包,右键追踪 HTTP 流。

可以看到黑客上传的内容,具体利用的漏洞是 Tomcat 通过 PUT 方法进行任意文件写入(CVE-2017-12615),感兴趣的可以网上了解一下。

文章配图

可以看到木马连接密码就在文件内容当中,长度为 16 字节(128 位),一般用于 AES 对称加密。

flag{3f0af7bb4dbcfbd7}
步骤 5
黑客执行的第一个命令是什么?

已知黑客是通过 POST 与 indeX.jsp 进行通信,我们修改 wireshark 语法搜索包含 indeX.jsp 的流量。

http contains "indeX.jsp"

文章配图

然后复制请求体 data 内容的ASCII 值,如图所示。

文章配图

这里使用解密工具,把复制的数据和之前得到的密钥放进去解密。

文章配图

可能受环境影响,显示有点问题,不过内容还是可以看得懂。经过分析,前面几个数据包是冰蝎用于连接用的,分析到第四个时可以看到黑客执行的命令。

文章配图

文章配图

因此黑客执行的第一个命令是 ifconfig。

flag{ifconfig}
步骤 6
黑客上传的文件内容是什么?

继续分析,发现长度为 362 的流量记录了创建文件的命令。

文章配图

文章配图

4ZmxhZ3s0ODUzNzViN2IwNmFkODU2YTc4OGMwZDk1MjI5ZjM1Y30=

但是解码后得到一堆乱码,那只能登进目标服务器查看对应文件内容了。

题目没有给出对应的服务器账号密码,需要我们渗透进去,那我们可以仿照前面黑客 PUT 上传文件的方法,用抓包工具修改发包。

先自己随便选一个协议,生成服务端。

文章配图

然后复制生成的 jsp 代码,粘贴到 body 中,同时修改请求体信息与之前黑客 PUT 上传的内容一样。

PUT /6.jsp/ HTTP/1.1 Host: 你的玄机靶机地址:8081 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:135.0) Gecko/20100101 Firefox/135.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate, br Connection: keep-alive Cookie: JSESSIONID=3F426B8219ACAB91DF13B18D987842BC Upgrade-Insecure-Requests: 1 X-Forwarded-For: 127.0.0.1 X-Originating-IP: 127.0.0.1 X-Remote-IP: 127.0.0.1 X-Remote-Addr: 127.0.0.1 Priority: u=0, i Content-Type: application/x-www-form-urlencoded Content-Length: 782 你的冰蝎 jsp 代码

然后发包即可,状态码显示 201 表示成功。

文章配图

在冰蝎连接 webshell,根据你之前选的协议选择对应的类别即可。

文章配图

连接后在文件管理处,找到 /home/xj/up.txt,打开文件查看内容,成功拿到 flag。

文章配图

文章配图

flag{485375b7b06ad856a788c0d95229f35c}
步骤 7
黑客下载的文件内容是什么?

继续分析流量包,分析到最后一个请求包时发现有黑客执行下载文件的命令。

文章配图

文章配图

对应路径为 /opt/apache-tomcat-8.5.19/conf/server.xml,用冰蝎查看对应文件,成功找到 flag。

文章配图

当然也可以查看对应的响应包,同样也给出了 flag。

文章配图

flag{3aacab9ca36a6894c75048e4faf47052}
步骤 8
服务器内的 flag 是什么?

用冰蝎在服务器内找就可以,最终发现 flag 在 /root/flag.txt 里面。

文章配图

flag{ae1d04dd3d15c6a18f904fe50fdf7eca}

目录

  1. 一、冰蝎 3.0 流量特征
  2. 二、索引
  3. 三、题目列表
  4. 步骤 1
  5. 黑客 IP 是什么?
  6. 步骤 2
  7. 黑客上传的 Webshell 名是什么?
  8. 步骤 3
  9. 黑客上传 WebShell 的时间是多少?(格式如:flag{YYYY-MM-DD HH:MM:SS})
  10. 步骤 4
  11. 木马的解密 key 是什么?
  12. 步骤 5
  13. 黑客执行的第一个命令是什么?
  14. 步骤 6
  15. 黑客上传的文件内容是什么?
  16. 步骤 7
  17. 黑客下载的文件内容是什么?
  18. 步骤 8
  19. 服务器内的 flag 是什么?

更多推荐文章

查看全部
  • AI 核心概念解析:AIGC、RAG、Agent 与 MCP
  • Hunyuan-MT-7B-WEBUI 部署避坑指南与性能优化
  • OpenClaw 接入飞书机器人与 Ollama 本地大模型部署指南
  • AIGC 时代:如何利用 DeepSeek 辅助少儿编程教育
  • Tuya-Local 本地智能家居配置指南
  • Jetson Xavier NX 驱动服务机器人:项目应用详解
  • ChatGPT 辅助 SEO 实战技巧与提示词指南
  • 主流无人机厂商 RemoteID 支持情况汇总
  • 前端请求后端 404/405/500 状态码排查与解决指南
  • Python 毕业设计选题避坑指南:从技术选型到可交付原型
  • Gemini、ChatGPT、Qwen、豆包、Claude五大主流AI模型深度对比
  • 2026 AI图像生成模型速度对比:谁才是真正的效率王?
  • 构建与 GitHub 深度集成的自动化工作流指南
  • 面向 C++ 开发的 Web 自动化测试入门:从概念到 Selenium 实战
  • 豆包 API 注册与密钥申请流程
  • C++ std::string 初始化与常用方法详解
  • 转行 AI 产品经理的薪资前景与面试指南
  • SpringBoot 整合 Neo4j 图数据库实战
  • Python 基础语法与数学建模应用指南
  • 开源教程「动手学大模型应用开发」:大模型应用开发与架构详解

相关免费在线工具

  • Keycode 信息

    查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

  • Escape 与 Native 编解码

    JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

  • JavaScript / HTML 格式化

    使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

  • JavaScript 压缩与混淆

    Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online