Java利用技巧——通过反射实现webshell编译文件的自删除

0x00 前言

我们知道,当我们访问jsp文件时,Java环境会先将jsp文件转换成 .class 字节码文件,再由Java虚拟机进行加载,这导致了Java服务器上会生成对应名称的 .class 字节码文件。对于webshell,这会留下痕迹。 为了实现自删除 .class 字节码文件,我们可以通过反射获得 .class 字节码文件的路径,再进行删除。本文将以Zimbra环境为例,结合 AntSword-JSP-Template ,分析利用思路。

0x01 简介

本文将要介绍以下内容:

  • 通过反射实现webshell编译文件的自删除
  • 通过反射实现AntSword-JSP-Template

0x02 通过反射实现webshell编译文件的自删除

根据上篇文章《Java利用技巧——通过反射修改属性》的内容,我们按照映射 request -> _scope -> _servlet -> rctxt -> jsps ,通过多次反射最终能够获得JspServletWrapper实例

查看JspServletWrapper类中的成员, jsps -> value -> ctxt -> servletJavaFileName 保存 .java 编译文件的路径, jsps -> value -> ctxt -> classFileName 保存 .class 编译文件的路径,示例如下图

为了只筛选出当前jsp,可以通过request类的 getServletPath() 方法获得当前Servlet,如下图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值