记一次shiro反序列化无法写入shell分析

admin 2022年3月8日19:30:50评论891 views字数 1136阅读3分47秒阅读模式


记一次shiro反序列化无法写入shell分析

破军安全实验室


    忆享科技旗下高端的网络安全攻防服务团队.安服内容包括渗透测试、代码审计、应急响应、漏洞研究、威胁情报、安全运维、攻防演练等

本文约1000字,阅读约需3分钟。


0x00  前言

记一次shiro反序列化无法写入shell分析


在某次攻防演习中,发现目标存在shiro反序列化漏洞,但无法写入webshell,逐寻找问题所在,最终从响应数据包中发现了问题所在。


0x01  发现

记一次shiro反序列化无法写入shell分析


发现目标登录API存在Shiro指纹。


记一次shiro反序列化无法写入shell分析


经检测得到密钥以及利用链,尝试Shiro反序列化利用工具进行命令执行。


记一次shiro反序列化无法写入shell分析



0x02  利用过程

记一次shiro反序列化无法写入shell分析


尝试手工写入webshell以及内存马写入,均无法成功写入。


记一次shiro反序列化无法写入shell分析


经过分析响应数据包,发现问题在于请求头长度太大,导致服务器无法处理或处理当前请求。


记一次shiro反序列化无法写入shell分析


记一次shiro反序列化无法写入shell分析


知道问题所在后,测试服务器可接收的请求头长度,将webshell进行base64编码后分割,手工写入webshell


记一次shiro反序列化无法写入shell分析


Linux写入方法(echo -n外的方法)

首行通过echo的方式进行写入

echo 'chunkdata'> path/shell.jsp


其余行通过sed将其写入行尾

sed -i '/$s/$/chunkdata/' path/shell.jsp


最终base64解码写入文件

cat path/shell.jsp|base64 -d > path/shell.jsp


示例:


记一次shiro反序列化无法写入shell分析

 

Windows写入方法:

设置永久环境变量

setx chunk_1 data1setx chunk_2 data2


当设置完环境变量或N个环境变量后写入文件

echo %chunk_1%%chunk_2% > pathtext


最终base64解码写入文件

certutil -decode pathtext pathshell.jsp


示例:


记一次shiro反序列化无法写入shell分析

 

由于目标为Linux,这里我们就用Linux的写入方法,手工写入Webshell


记一次shiro反序列化无法写入shell分析



0x03  总结

记一次shiro反序列化无法写入shell分析


当我们在漏洞挖掘及利用过程中,由于目标环境不同,往往会出现各式各样的问题场景。工具无法做到各个场景都能利用,所以我们要对问题进行思考分析,最终定位问题所在,而分析利用工具请求响应数据包是最常见的方法之一,目前越来越多的安全工具支持HTTP代理模式,这也方便了大家能通过Burpsuite抓包调试及发现问题。



 声明

    由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,破军安全实验室及文章作者不为此承担任何责任。

    破军安全实验室拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经破军安全实验室允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。


记一次shiro反序列化无法写入shell分析

破军安全实验室

# 长按二维码 关注我们 #



原文始发于微信公众号(破军安全实验室):记一次shiro反序列化无法写入shell分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年3月8日19:30:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   记一次shiro反序列化无法写入shell分析https://cn-sec.com/archives/822629.html

发表评论

匿名网友 填写信息