From 9f031bfa11da7043135585c784afe5161b79b5b8 Mon Sep 17 00:00:00 2001 From: Vadim Shulkin Date: Fri, 9 May 2025 09:32:04 -0400 Subject: [PATCH] Added --- .../plugins/custom/Base64InflateFunction.java | 4 +++- .../custom/Base64InflateFunction.class | Bin 5410 -> 5497 bytes ...-function-base64inflate-1.0.0-SNAPSHOT.jar | Bin 14388 -> 14449 bytes ...-function-base64inflate-1.0.0-SNAPSHOT.jar | Bin 11328 -> 11389 bytes 4 files changed, 3 insertions(+), 1 deletion(-) diff --git a/graylog-plugin-function-base64inflate/src/main/java/org/graylog/plugins/custom/Base64InflateFunction.java b/graylog-plugin-function-base64inflate/src/main/java/org/graylog/plugins/custom/Base64InflateFunction.java index 0ab398f..bf14b94 100644 --- a/graylog-plugin-function-base64inflate/src/main/java/org/graylog/plugins/custom/Base64InflateFunction.java +++ b/graylog-plugin-function-base64inflate/src/main/java/org/graylog/plugins/custom/Base64InflateFunction.java @@ -71,7 +71,9 @@ public class Base64InflateFunction extends AbstractFunction { try { LOG.debug("Received input for Base64Inflate: {}", input); String urlDecoded = URLDecoder.decode(input, StandardCharsets.UTF_8.name()); - byte[] base64Decoded = Base64.getDecoder().decode(urlDecoded); + String cleaned = urlDecoded.replaceAll("\\s", ""); + + byte[] base64Decoded = Base64.getDecoder().decode(cleaned); try (InflaterInputStream inflater = new InflaterInputStream( new ByteArrayInputStream(base64Decoded), new Inflater(true)); diff --git a/graylog-plugin-function-base64inflate/target/classes/org/graylog/plugins/custom/Base64InflateFunction.class b/graylog-plugin-function-base64inflate/target/classes/org/graylog/plugins/custom/Base64InflateFunction.class index ed867d4c3a5ce0949687ebc5cc2ab0beeca88dcd..ffa4daa7a7be2d7c2f7269f867935952f55fc915 100644 GIT binary patch delta 1390 zcmaKsX>3$g6vuyW=5^jOucb4M#z#{Lu|ZlS6_YkP5kreHlo&8dkpZF(!^q;$(rKlF z$~f*?7vPpsaVgfNZs4?qX`z+6f+8y5f;Hj0U;N}J5@S7YT1vwQlX>^Nd(Qv<&bjxz zJ3W;bEA3PN9y<;!BQL9>iQlm^QEGoO*CWGG#KI8B#&xtyfh^?Q5)qBww9A2bd zJZ-5>tqBc7($v>`#0)Pxyuzz0YS-MHVYkB`0wRnjn_3bcbGN}>jgrl=ZLz9ktZ_rt zijAqJw%EF)L_65$(8X)&q&;7MT~w;CsKjsbrYZ`S1@_bJa6l~xmIQhn-r-%fG`J-2 zzC$k`sIFjl@FPAp_{8BLhX(4Ls4rl|lZjZP+E;W=|50O+I#aaBZ*WFsXWXidsJ~`h zsQ8pD8hz3ZA9DzEEwg0apPvuN$w=h{WIU|?F1}tnqDn)vN^=r*#0OV1$dFi#queHh z!>S=vEvoj=byb&D<&&xj>M>DE!5&kRo)EetgfVp?RGxPA@B`s>Io3xChS=a1P;M|Q%e-kXP9$x+mMaT7U28OA<^`Tx1Rl53HAf?Q zKa0a}xO$GaT>U6->u6aF*3vG0>p)sWkJx+I#UZg>GI}=45jm(13faroqUw^-vwrcz z9fa~@x{xJYLp|jzrHVVbg=K=eOYnCSX9dkPu#;7iEGnQ?f>|b*)tq1r=SAh6`3^bH zIMoa@g2fi*@fpYET6v67KF1VdGhgtflwHmNzLMf}$tH!R<+VVPw)2fF4hXhHo|6)m z22D26d;6B}^6ekv6yHnR3pp*=tnB8rD9>Y!O9i$;slg8hKN-|q`kggM8DtF3!avN^ z#&NNxgy~B%(N8MT3_8YTBma-<$m`5;DaM?_T|t{dT~2s~Lh?@o>C-{p;{C<7^5xcf z-??mafo#_=)~K9!Lyq^d^6JZX)4MJ(Ki`arYhp~E-8u1FJ}4F|kIByycT1+Ty+zBt xc(`2;txxIf7dN4gyY#p`L`Uy`VR(iCYk^M delta 1346 zcmZ{kTTEP46o$XU9A=+$=0Leb(*ve0mDob9#H8>rQDbQ|K_DL{-fgjB?Yr^C2OoU#(Zq=B%nV(=BzfB984ifDv!|^$W}qZPeZ3D$@~q2qJg@gTHKj@VTn-Tw z$L5Z%M9gRQDPA%t)<&qn|msfaI|L&}9JS_Uw=#FSrN3=6ub=R)uSa)w*SEt2M zgQd06M670AeP?S&v^Tb*HQLq@YYDH|z1KnWn#=1%44inZ_nufH5sk+}H1MX&TfD8i zLUqAGmv?wqpAQX&hImhL(&c@I$K!4!N6+TZnco`RssC`-=_^a}jf?u1CAS%8^bG|+ zSA4*S75MVH5lU# zA&lq)h1KFURd{37e_rJaURmn6c*|aWrX)Qs^pFtdv|Ci3n&dIhOw$_9ou)l9&9;b_ zJ3-epJrQ$)-U)VwgVQ7<6YL4ALX&e=*z$s&m1b|G#?Bd}z*C+TxXw=V)bRXoo*Lu6 zG!LaY7(qLH#f2U&>;6t|6G$68u12uwE`?t-w=qBe_-17Z9r|*W8@u_^5p5WE$o_16Z4> zdG`9Ng<{Q$Zs(9`s5I5$`|O($xhxYT%SEM=oET?A_PO{MAj_+gWZ8#tnN>fCoFkS0 XQEZ7U6yb2iw5bq|Z{zYe`4jd(LAx5@ diff --git a/graylog-plugin-function-base64inflate/target/graylog-plugin-function-base64inflate-1.0.0-SNAPSHOT.jar b/graylog-plugin-function-base64inflate/target/graylog-plugin-function-base64inflate-1.0.0-SNAPSHOT.jar index c2184dd97ad9e6d7f87e9d362a36bc4197488f3e..d25ce30b61989a4f515ec93943c6dc02e1e0b049 100644 GIT binary patch delta 3256 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