【技术原创】Java利用技巧——AntSword-JSP-Template的优化 - 嘶吼 RoarTalk – 网络安全行业综合服务平台,4hou.com

【技术原创】Java利用技巧——AntSword-JSP-Template的优化

3gstudent 技术 2022-10-14 11:33:00
133469
收藏

导语:本文分享了一种不额外生成.class文件的实现方法,对于开源的代码test4.jsp,还可以应用到Java文件的编写中。

0x00 前言

在之前的文章《Java利用技巧——通过反射实现webshell编译文件的自删除》曾介绍了通过反射实现AntSword-JSP-Template的方法。对于AntSword-JSP-Template中的shell.jsp,访问后会额外生成文件shell_jsp$U.class。《Java利用技巧——通过反射实现webshell编译文件的自删除》中的方法,访问后会额外生成文件shell_jsp$1.class。

在某些特殊环境下,需要避免额外生成.class文件。本文将以Zimbra环境为例,介绍实现方法,开源代码,记录细节。

0x01 简介

本文将要介绍以下内容:

· 实现思路

· 实现代码

0x02 实现思路

基于《Java利用技巧——通过反射实现webshell编译文件的自删除》中的方法,访问后会额外生成文件shell_jsp$1.class,这里可以通过构造器避免额外生成.class文件。

在具体使用过程中,需要注意如下问题:

(1)反射机制中的构造器

正常调用的代码:

image.png

通过反射实现的代码:

image.png

(2)选择合适的defineClass()方法

在ClassLoader类中,defineClass()方法有多个重载,可以选择一个可用的重载。

本文选择defineClass(byte[] b, int off, int len)

(3)SecureClassLoader

使用构造器时,应使用SecureClassLoader,而不是ClassLoader

示例代码:

image.png

0x03 实现代码

为了方便比较,这里给出每种实现方法的代码:

(1)test1.jsp

来自AntSword-JSP-Template中的shell.jsp,代码如下:

image.png


保存在Zimbra的web目录:/opt/zimbra/jetty_base/webapps/zimbra/

通过Web访问后在目录/opt/zimbra/jetty_base/work/zimbra/jsp/org/apache/jsp/生成以下文件:

· _test1_jsp.java

· _test1_jsp.class

· _test1_jsp$U.class

(2)test2.jsp

来自《Java利用技巧——通过反射实现webshell编译文件的自删除》中通过反射实现AntSword-JSP-Template的方法,代码如下:

image.png

通过Web访问后生成以下文件:

· _test2_jsp.java

· _test2_jsp.class

· _test2_jsp$1.class

(3)test3.jsp

基于test2.jsp,通过构造器实现,代码如下:

image.png

通过Web访问后生成以下文件:

· _test3_jsp.java

· _test3_jsp.class

(4)test4.jsp

基于test3.jsp,不使用base64Decode(),代码如下:

image.png

通过Web访问后生成以下文件:

· _test4_jsp.java

· _test4_jsp.class

在代码实现上需要注意Java语言中数组必须先初始化,然后才可以使用。

0x04 小结

本文分享了一种不额外生成.class文件的实现方法,对于开源的代码test4.jsp,还可以应用到Java文件的编写中。

本文为 3gstudent 原创稿件,授权嘶吼独家发布,如若转载,请注明原文地址
  • 分享至
取消

感谢您的支持,我会继续努力的!

扫码支持

打开微信扫一扫后点击右上角即可分享哟

发表评论

 
本站4hou.com,所使用的字体和图片文字等素材部分来源于原作者或互联网共享平台。如使用任何字体和图片文字有侵犯其版权所有方的,嘶吼将配合联系原作者核实,并做出删除处理。
©2024 北京嘶吼文化传媒有限公司 京ICP备16063439号-1 本站由 提供云计算服务