Help
RSS
API
Feed
Maltego
Contact
Domain > ip.91chaguan.com
×
More information on this domain is in
AlienVault OTX
Is this malicious?
Yes
No
DNS Resolutions
Date
IP Address
2024-07-27
23.237.78.2
(
ClassC
)
2026-02-08
134.122.183.243
(
ClassC
)
Port 80
HTTP/1.1 418 Date: Sun, 08 Feb 2026 17:20:49 GMTContent-Type: text/html;charsetutf8Transfer-Encoding: chunkedConnection: keep-aliveX-BLOCK: FrequencyLimit|Global-119Cache-Control: no-cacheServer: NginxX-Server: tPbmDBJFdNtxCXbsX-Safe: 1770571249K904Piv8dq8FgWgWloy+Lly0oytnZec7bZG3CFS9/LTFK1xcGqfyPvgOFCP8F/rrLfRP5Iz+a5rYfXitHXbUccNGiP/yYTfcEQA3q1p/A9MIEB8Bf9o+pmkFXOw+41sMFxKx7+LvZjE3cJfqz7yJzK86FAN6NmkUhgWwX8xPruc/CawzC73DDMxwq8dWsf6gX-Request-Id: 680B2CEA-BF69-4F32-BFFD-469DFDE10F33 !DOCTYPE html>html langzh-CN>head> meta charsetutf-8 /> meta nameviewport contentwidthdevice-width, initial-scale1 /> meta nametheme-color content#000000 /> link relstylesheet typetext/css href/_waf/_5bc47aeabf8e434a7b500ae703190c2f.sjs?typeglobalCss> title>验证码中间页 - CDNWAF防护系统/title> style> /* Basic Reset & Font */ *, *::before, *::after { box-sizing: border-box; } html, body { height: 100%; padding: 0; margin: 0; font-family: Segoe UI, Tahoma, Geneva, Verdana, sans-serif; color: #333; /* Darker text for better contrast */ background-color: #FFFFFF; /* Lighter, more neutral background */ display: flex; flex-direction: column; align-items: center; justify-content: center; /* Vertically center content */ line-height: 1.6; } :root { --go-captcha-theme-body-bg-color: #ffffff; } .page-container { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; min-height: 100vh; /* Ensure full viewport height */ /* padding: 20px; */ } .captcha-wrapper { background-color: #ffffff; padding: 30px 30px 40px 30px; /* Increased padding, especially at bottom */ border-radius: 2px; box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1); text-align: center; max-width: 400px; /* Constrain width for better aesthetics */ width: 100%; } .header-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; } .header-main { flex: 1; min-width: 0; text-align: left; } .captcha-title { font-size: 24px; font-weight: 600; color: #1D2129; margin-bottom: 10px; } .captcha-subtitle { font-size: 16px; color: #4E5969; margin-bottom: 25px; } .lang-switcher { position: relative; font-size: 13px; white-space: nowrap; } .lang-toggle { padding: 6px 10px; border-radius: 999px; border: 1px solid rgba(0, 0, 0, 0.12); background: rgba(0, 0, 0, 0.02); color: #4E5969; cursor: pointer; font-size: 13px; line-height: 1; display: inline-flex; align-items: center; gap: 6px; } .lang-toggle span { display: inline-block; } .lang-toggle-arrow { font-size: 10px; } .lang-menu { position: absolute; right: 0; top: 100%; margin-top: 8px; min-width: 160px; background-color: #ffffff; color: #1D2129; border-radius: 6px; box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08); border: 1px solid rgba(0, 0, 0, 0.06); padding: 4px 0; display: none; z-index: 10; box-sizing: border-box; flex-direction: column; align-items: stretch; } .lang-menu button { width: 100%; padding: 8px 12px; text-align: left; background: transparent; border: none; cursor: pointer; font-size: 13px; color: inherit; } .lang-menu button:hover { background-color: rgba(59, 130, 246, 0.06); } .go-captcha{ margin: 0 auto; } /* This is where the GoCaptcha injects its elements */ #slide-wrap { margin: 0 auto; /* Center the captcha if its own width is less than container */ /* border: 1px solid #e0e0e0; */ /* Subtle border around captcha area */ border-radius: 2px; /* Rounded corners for the captcha itself */ overflow: hidden; /* Ensure content doesnt spill if captcha has its own styling */ } #slide-wrap>div { /* Target the direct child div goCaptcha creates */ border-radius: 2px !important; /* Override potential inline styles */ } /* Enhanced Toast Styles */ .toast { position: fixed; top: 30px; /* Slightly more space from top */ left: 50%; transform: translateX(-50%); padding: 14px 28px; border-radius: 8px; font-size: 15px; font-weight: 500; z-index: 1000; opacity: 0; transition: opacity 0.4s ease-in-out, transform 0.4s ease-in-out; /* Add transform transition */ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); transform: translateX(-50%) translateY(-20px); /* Start slightly above */ } .toast.show { opacity: 1; transform: translateX(-50%) translateY(0); /* Animate into view */ } .toast-success { background-color: #e6f7f0; /* Softer green */ border: 1px solid #b3e0c7; color: #228655; } .toast-error { background-color: #fff0f0; /* Softer red */ border: 1px solid #f9c9c9; color: #d93025; } .footer-text { margin-top: 30px; font-size: 12px; color: #888; } /* Mobile responsive styles */ @media (max-width: 768px) { .toast { font-size: 13px; padding: 12px 20px; white-space: nowrap; max-width: 90vw; overflow: hidden; text-overflow: ellipsis; } .captcha-wrapper { padding: 20px; margin: 0 10px; } .captcha-title { font-size: 20px; } .captcha-subtitle { font-size: 14px; } } /style>/head>body> div classpage-container> div classcaptcha-wrapper> div classheader-row> div classheader-main> h1 classcaptcha-title idpage-title>/h1> p classcaptcha-subtitle idpage-subtitle>/p> /div> div classlang-switcher> button classlang-toggle idlang-toggle typebutton> span idlang-toggle-label>简体中文/span> span classlang-toggle-arrow>▼/span> /button> div classlang-menu idlang-menu> button typebutton data-langen>English/button> button typebutton data-langzh-CN>简体中文/button> button typebutton data-langzh-TW>繁體中文/button> /div> /div> /div> div idslide-wrap>/div> /div> p classfooter-text> © span idcurrentYear>/span> span idfooter-text>/span> /p> /div> !-- GoCaptcha --> script typetext/javascript src/_waf/_5bc47aeabf8e434a7b500ae703190c2f.sjs?typeglobalJs>/script> !-- Request parameter serialization--> script src/_waf/_5bc47aeabf8e434a7b500ae703190c2f.sjs?typeqs>/script> script typetext/javascript> const API_BASE_URL /_waf/_5bc47aeabf8e434a7b500ae703190c2f.sjs; function t(key, fallback) { const i18n window.__waf_i18n; if (i18n && typeof i18n.t function) { return i18n.t(key, fallback); } return fallback || ; } function updateCaptchaHeader(container) { const root container || document; const spans root.querySelectorAll(.go-captcha .gc-header > span); const text t(captcha.header, 请完成下方验证); for (const span of spans) { if (span) { if (span.textContent ! text) { span.textContent text; } } } } function showToast(message, type) { // Remove existing toast if any const existingToast document.querySelector(.toast); if (existingToast) { existingToast.remove(); } // Create new toast const toast document.createElement(div); toast.className `toast toast-${type}`; toast.textContent message; document.body.appendChild(toast); // Show toast setTimeout(() > { toast.classList.add(show); }, 10); // Shorter delay to start animation // Hide and remove toast after 3 seconds setTimeout(() > { toast.classList.remove(show); setTimeout(() > { if (toast.parentNode) { // Check if still in DOM toast.remove(); } }, 400); // Match transition duration }, 3000); // Increased display time for toast } function toastSuccess(msg) { showToast(msg, success); } function toastError(msg) { showToast(msg, error); } ; (function (goCaptcha) { if (!goCaptcha || !goCaptcha.Slide) { console.error(GoCaptcha not loaded or Slide method not available.); // Optionally, display an error message to the user on the page const el document.getElementById(slide-wrap); if (el) { el.innerHTML p stylecolor: red; text-align: center; padding: 20px;> + t(error.component_load, 验证组件加载失败,请刷新页面或联系管理员。) + /p>; } return; } const getDataApi ?typeget; const checkDataApi ?typecheck; const el document.getElementById(slide-wrap); const capt new goCaptcha.Slide({ width: 300, height: 220, }); var captKey capt.mount(el) let headerUpdateScheduled false; function scheduleHeaderUpdate() { if (headerUpdateScheduled) return; headerUpdateScheduled true; requestAnimationFrame(() > { headerUpdateScheduled false; updateCaptchaHeader(el); }); } window.__updateCaptchaHeader function () { scheduleHeaderUpdate(); }; scheduleHeaderUpdate(); const headerObserver new MutationObserver(() > scheduleHeaderUpdate()); headerObserver.observe(el, { subtree: true, childList: true, characterData: true }); capt.setEvents({ confirm(dots, reset) { confirmEvent(dots) }, refresh() { capt.clear() requestCaptchaData() }, }) const requestCaptchaData async function () { capt.clear() captKey try { const response await fetch(API_BASE_URL + getDataApi); if (!response.ok) { // Check for HTTP errors toastError(t(error.fetch_data, 获取数据失败) + : + response.status); return; } const data await response.json(); if (data && (datacode || 0) 0) { capt.setData({ image: dataimage_base64 || , thumb: datatile_base64 || , thumbX: datatile_x || 0, thumbY: datatile_y || 0, thumbWidth: datatile_width || 0, thumbHeight: datatile_height || 0, }) captKey datacaptcha_key || } else { toastError(t(error.fetch_data_failed, 获取验证数据失败) + : + (datamessage || t(error.unknown, 未知错误))); } } catch (e) { console.warn(Error fetching captcha data:, e) toastError(t(error.network_request, 网络请求失败,请检查连接)); } } const confirmEvent async function (point) { if (!captKey) { toastError(t(error.missing_verify_info, 验证信息丢失,请刷新重试)); requestCaptchaData(); // Attempt to refresh return; } try { const response await fetch(API_BASE_URL + checkDataApi, { method: POST, headers: { Content-Type: application/x-www-form-urlencoded, }, body: Qs.stringify({ point: point.x, point.y.join(,), key: captKey || }) }); if (!response.ok) { // Check for HTTP errors toastError(t(error.verify_request, 验证请求失败) + : + response.status); setTimeout(() > { requestCaptchaData() }, 500); return; } const data await response.json(); if (data && (datacode || 0) 0) { toastSuccess(t(success.verified_reload, 验证成功!页面即将刷新...)); setTimeout(function () { location.reload(true); }, 1500); // Slightly longer for user to read success } else { toastError(t(error.verify_failed, 验证失败) + : + (datamessage || t(tip.retry, 请重试))); setTimeout(() > { requestCaptchaData() }, 500); } } catch (e) { console.warn(Error confirming captcha:, e) toastError(t(error.verify_network, 验证时发生网络错误)); setTimeout(() > { requestCaptchaData() }, 500); } } // Initial load if (el) { // Ensure element exists before trying to mount requestCaptchaData(); } else { console.error(Captcha container #slide-wrap not found.); // Optionally display an error to the user } })(window.GoCaptcha || {}); // New script to set the current year in the footer document.addEventListener(DOMContentLoaded, function () { const yearSpan document.getElementById(currentYear); if (yearSpan) { yearSpan.textContent new Date().getFullYear(); } }); const languageResources { zh-CN: { document-title: 验证码中间页 - CDNWAF防护系统, page-title: 安全验证, page-subtitle: 完成验证后继续访问, footer-text: 本站由CDN提供安全防护, lang-toggle-label: 语言, captcha.header: 请拖动滑块完成拼图, success.verified_reload: 验证成功!页面即将刷新..., tip.retry: 请重试, error.component_load: 验证组件加载失败,请刷新页面或联系管理员。, error.fetch_data: 获取数据失败, error.fetch_data_failed: 获取验证数据失败, error.network_request: 网络请求失败,请检查连接, error.missing_verify_info: 验证信息丢失,请刷新重试, error.verify_request: 验证请求失败, error.verify_failed: 验证失败, error.verify_network: 验证时发生网络错误, error.unknown: 未知错误 }, zh-TW: { document-title: 驗證碼中間頁 - CDNWAF防護系統, page-title: 安全驗證, page-subtitle: 完成驗證後繼續訪問, footer-text: 本網站由CDN提供安全防護, lang-toggle-label: 語言, captcha.header: 請拖動滑塊完成拼圖, success.verified_reload: 驗證成功!頁面即將刷新..., tip.retry: 請重試, error.component_load: 驗證組件加載失敗,請刷新頁面或聯繫管理員。, error.fetch_data: 獲取數據失敗, error.fetch_data_failed: 獲取驗證數據失敗, error.network_request: 網絡請求失敗,請檢查連接, error.missing_verify_info: 驗證信息丟失,請刷新重試, error.verify_request: 驗證請求失敗, error.verify_failed: 驗證失敗, error.verify_network: 驗證時發生網絡錯誤, error.unknown: 未知錯誤 }, en: { document-title: Verification Page - CDNWAF Security, page-title: Security Check, page-subtitle: Complete the verification to continue, footer-text: This site is protected by CDN WAF, lang-toggle-label: Language, captcha.header: Drag the slider to complete the puzzle, success.verified_reload: Verified. Reloading..., tip.retry: Please try again, error.component_load: Verification component failed to load. Please refresh or contact admin., error.fetch_data: Failed to fetch data, error.fetch_data_failed: Failed to fetch verification data, error.network_request: Network request failed. Please check your connection., error.missing_verify_info: Verification info missing. Please refresh and retry., error.verify_request: Verification request failed, error.verify_failed: Verification failed, error.verify_network: Network error during verification, error.unknown: Unknown error } }; function normalizeLang(tag) { return (tag || ).toLowerCase(); } function mapToSupported(tag) { const t normalizeLang(tag); if (!t) return null; if (t.startsWith(en)) return en; if (t.startsWith(zh-cn) || t.startsWith(zh-sg) || t zh || t.includes(hans)) return zh-CN; if (t.startsWith(zh-tw) || t.startsWith(zh-hk) || t.startsWith(zh-mo) || t.includes(hant)) return zh-TW; return null; } function detectBrowserLanguage() { const langs (navigator.languages && navigator.languages.length) ? navigator.languages : navigator.language || navigator.userLanguage; for (const l of langs) { const m mapToSupported(l); if (m) return m; } return en; } function translate(lang, key, fallback) { const base languageResourcesen; const res languageResourceslang || base; if (res && reskey ! null) return reskey; if (base && basekey ! null) return basekey; return fallback || ; } function setLanguage(lang) { const base languageResourcesen; const res languageResourceslang || base; const r Object.assign({}, base, res); for (const k in r) { if (k lang-toggle-label) continue; const el document.getElementById(k); if (el) el.textContent rk; } const toggleLabel document.getElementById(lang-toggle-label); if (toggleLabel) { toggleLabel.textContent Language; } document.documentElement.lang lang; document.title rdocument-title || rpage-title; window.__waf_i18n { lang, t: (key, fallback) > translate(lang, key, fallback), setLang: (nextLang) > setLanguage(nextLang) }; if (typeof window.__updateCaptchaHeader function) { window.__updateCaptchaHeader(); } } function initLanguageSwitcher() { const toggle document.getElementById(lang-toggle); const menu document.getElementById(lang-menu); if (!toggle || !menu) return; function closeMenu() { menu.style.display none; menu.setAttribute(data-open, 0); } function openMenu() { menu.style.display flex; menu.setAttribute(data-open, 1); } toggle.addEventListener(click, function (e) { e.stopPropagation(); const isOpen menu.getAttribute(data-open) 1; if (isOpen) { closeMenu(); } else { openMenu(); } }); menu.addEventListener(click, function (e) { const target e.target; if (!target) return; if (target.tagName ! BUTTON) return; const lang target.getAttribute(data-lang); if (!lang) return; setLanguage(lang); closeMenu(); }); document.addEventListener(click, function () { closeMenu(); }); } setLanguage(detectBrowserLanguage()); initLanguageSwitcher(); /script>/body>/html>
View on OTX
|
View on ThreatMiner
Please enable JavaScript to view the
comments powered by Disqus.
Data with thanks to
AlienVault OTX
,
VirusTotal
,
Malwr
and
others
. [
Sitemap
]