Увели iCloud через javascript помогите разобраться!!!
Здравствуйте. маленькая предъистория: потерял айфон, в приложении локатор включил режим пропажи, далее ждал пока iPhone x включат и он найдется, указал свой телефон. Через два дня приходит смс на указанный мною номер с примерным текстом " Ваш телефон обнаружен пройдите по ссылке http://locator-apple.com/?findmy=354876094451866 ", подумал сначала, что это обычный фишинг. Потом из любопытства решил зайти по ссылке с ноутбука. Захожу вижу, что я попадаю на сайт https://www.icloud.com/find c подписанным ssl сертификатом. Потом зашел еще собственноручно на https://www.icloud.com/find. Меня отвлекли по работе и я перепутал странички и ввел пароль, на той где был редирект на https://www.icloud.com/find (http://locator-apple.com/?findmy=354876094451866). Позже понял что все мои устройства отвязаны от учетной записи и телефон угнан. После нехитрых манипуляций я нашел файл который загружается при загрузке http://locator-apple.com/?findmy=354876094451866, потом идет редирект на iCloud.com/find В чем собственно и вопрос что делает этот скрипт? и как он может быть исполнен после редиректа на страничку iCloud с сертификатом и защитой https. Текст файла ниже. очень интересно как такое возможно.
|
<!DOCTYPE html>
<html> <head> <meta http-equiv="X-UA-Compatible" content="IE=EDGE" /> <script> function getCurrentTimeForPerformance() { var perf = window.performance; if (perf && perf.now) { return Math.round(perf.now()) } else { return Date.now() } } var SC_benchmarkPreloadEvents = { headStart: getCurrentTimeForPerformance() }; </script> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <meta name="apple-mobile-web-app-capable" content="yes" /> <meta name="apple-mobile-web-app-status-bar-style" content="default" /> <meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" /> <meta name="description" content="Определите геопозицию утерянного iPhone, iPad, iPod touch или Mac, удаленно заблокируйте устройство и сотрите с него все данные для защиты личной информации." /> <link rel="apple-touch-icon" href="/applications/find/1920Project37/sproutcore/foundation/1920Project37/ru-ru/source/resources/images/apple-touch-icon.png" /> <title> Find My iPhone </title> <script> BUILD_INFO = { buildMode: "production", buildNumber: "1920Project37", masteringNumber: "1920B32", buildLocale: "ru-ru", currentUrl: "/applications/find/1920Project37/ru-ru/index.html", useRelativeUrls: false, styles: { x2: ["/applications/find/1920Project37/ru-ru/stylesheet@2x-packed.css"], normal: ["/applications/find/1920Project37/ru-ru/stylesheet-packed.css"] }, images: { x2: ["/applications/find/1920Project37/ru-ru/packed-1@2x.png", "/applications/find/1920Project37/ru-ru/packed-2@2x.png", "/applications/find/1920Project37/ru-ru/packed-3@2x.png", "/applications/find/1920Project37/ru-ru/packed-4@2x.png", "/applications/find/1920Project37/ru-ru/packed-5@2x.png"], normal: ["/applications/find/1920Project37/ru-ru/packed-1.png", "/applications/find/1920Project37/ru-ru/packed-2.png", "/applications/find/1920Project37/ru-ru/packed-3.png", "/applications/find/1920Project37/ru-ru/packed-4.png", "/applications/find/1920Project37/ru-ru/packed-5.png"] } }; |
</script>
<script type="text/javascript"> String.preferredLanguage = "ru-ru"; </script> <script type="text/javascript"> if (!window.BUILD_INFO) { BUILD_INFO = { useRelativeUrls: false, currentUrl: window.location.pathname } } window.SC = window.SC || { MODULE_INFO: {}, LAZY_INSTANTIATION: {}, buildMode: BUILD_INFO.buildMode, buildNumber: BUILD_INFO.buildNumber, masteringNumber: BUILD_INFO.masteringNumber, buildLocale: BUILD_INFO.buildLocale }; window.SC = window.SC || { MODULE_INFO: {}, LAZY_INSTANTIATION: {} }; SC._detectBrowser = function(userAgent, language) { var version, webkitVersion, isEdge, iOSAgent, iOSDevice, iOSMajorVersion, iOSMinorVersion, browser = {}; userAgent = (userAgent || navigator.userAgent).toLowerCase(); language = language || navigator.language || navigator.browserLanguage; isEdge = /\sedge\//.test(userAgent); if (isEdge) { version = (userAgent.match(/(?:edge\/)([\d\.]*)/) || [])[1] } else { version = (userAgent.match(/.*(?:rv|chrome|webkit|opera|ie)[\/: ](.+?)([ \);]|$)/) || [])[1] } browser.version = version; webkitVersion = (userAgent.match(/webkit\/(.+?) /) || [])[1]; browser.windows = browser.isWindows = !! /windows/.test(userAgent); browser.lion = browser.isLion = !! (/mac os x 10[_\.][7-9]/.test(userAgent) && !/like mac os x 10[_\.][7-9]/.test(userAgent)); browser.android = browser.isAndroid = !! /android/.test(userAgent); browser.silk = browser.isSilk = !! /silk/.test(userAgent); browser.opera = /opera/.test(userAgent) ? version : 0; browser.isOpera = !! browser.opera; browser.msie = /msie \d+\.\d+|trident\/\d+\.\d.*; rv:\d+\.\d+[;\)]/.test(userAgent) && !browser.opera ? version : 0; browser.isIE = !! browser.msie; browser.isIE8OrLower = !! (browser.msie && parseInt(browser.msie, 10) <= 8); browser.isIE9OrLower = !! (browser.msie && parseInt(browser.msie, 10) <= 9); browser.isIE10OrLower = !! (browser.msie && parseInt(browser.msie, 10) <= 10); browser.isIE10 = !! (browser.msie && parseInt(browser.msie, 10) === 10); browser.isIE11 = !! (browser.msie && parseInt(browser.msie, 10) === 11); browser.edge = isEdge ? version : 0; browser.isEdge = isEdge; browser.mozilla = !isEdge && /mozilla/.test(userAgent) && !/(compatible|webkit|msie|trident)/.test(userAgent) ? version : 0; browser.isMozilla = !! browser.mozilla; browser.webkit = (!isEdge && /webkit/.test(userAgent)) ? webkitVersion : 0; browser.isWebkit = !! browser.webkit; browser.chrome = !isEdge && /chrome/.test(userAgent) ? version : 0; browser.isChrome = !! browser.chrome; var probablyMac = !! /macintosh/.test(userAgent) || (/mac os x/.test(userAgent) && !/like mac os x/.test(userAgent)); var supportsTouch = navigator.maxTouchPoints > 0; var isDesktopClassIpad = probablyMac && supportsTouch && !browser.isChrome; iOSAgent = userAgent.split(/\s*[;)(]\s*/) || []; iOSDevice = iOSAgent[1]; iOSDeviceVersion = iOSAgent[2] ? iOSAgent[2].match(/(\d{1,})_(\d{1,})/i) : null; if (isDesktopClassIpad) { iOSMajorVersion = 13; iOSMinorVersion = 0 } else { iOSMajorVersion = iOSDeviceVersion ? iOSDeviceVersion[1] : null; iOSMinorVersion = iOSDeviceVersion ? iOSDeviceVersion[2] : null } browser.mac = browser.isMac = probablyMac && !isDesktopClassIpad; browser.iPhone = browser.isiPhone = (iOSDevice === "iphone"); browser.iPod = browser.isiPod = (iOSDevice && iOSDevice.indexOf("ipod") > -1); browser.iPad = browser.isiPad = (iOSDevice === "ipad") || isDesktopClassIpad; browser.iOS = browser.isiOS = browser.iPhone || browser.iPod || browser.iPad; browser.iOSMajorVersion = browser.iOS ? iOSMajorVersion * 1 : undefined; browser.iOSMinorVersion = browser.iOS ? iOSMinorVersion * 1 : undefined; browser.mobileSafari = (/apple.*mobile/.test(userAgent) && browser.iOS ? webkitVersion : 0) || isDesktopClassIpad; browser.isMobileSafari = !! browser.mobileSafari; browser.iPadSafari = browser.iPad && browser.isMobileSafari ? webkitVersion : 0; browser.isiPadSafari = !! browser.iPadSafari; browser.iPhoneSafari = browser.iPhone && browser.isMobileSafari ? webkitVersion : 0; browser.isiPhoneSafari = !! browser.iphoneSafari; browser.iPodSafari = browser.iPod && browser.isMobileSafari ? webkitVersion : 0; browser.isiPodSafari = !! browser.iPodSafari; browser.isiOSHomeScreen = browser.isMobileSafari && !/apple.*mobile.*safari/.test(userAgent); browser.safari = browser.webkit && !browser.chrome && !browser.iOS && !browser.android ? webkitVersion : 0; browser.isSafari = !! browser.safari; browser.language = language.split("-", 1)[0]; browser.current = browser.edge ? "edge" : browser.msie ? "msie" : browser.mozilla ? "mozilla" : browser.chrome ? "chrome" : browser.safari ? "safari" : browser.opera ? "opera" : browser.mobileSafari ? "mobile-safari" : browser.android ? "android" : "unknown"; return browser }; SC.browser = SC._detectBrowser(); if (typeof SC_benchmarkPreloadEvents !== "undefined") { SC.benchmarkPreloadEvents = SC_benchmarkPreloadEvents; SC_benchmarkPreloadEvents = undefined } else { SC.benchmarkPreloadEvents = { headStart: new Date().getTime() } } |
SC.setupBodyClassNames = function() {
var el = document.body, browser, platform, shadows, borderRad, classNames, style, ieVersion; if (!el) { return } browser = SC.browser.current; platform = SC.browser.windows ? "windows" : SC.browser.mac ? "mac" : "other-platform"; style = document.documentElement.style; shadows = (style.MozBoxShadow !== undefined) || (style.webkitBoxShadow !== undefined) || (style.oBoxShadow !== undefined) || (style.boxShadow !== undefined); borderRad = (style.MozBorderRadius !== undefined) || (style.webkitBorderRadius !== undefined) || (style.oBorderRadius !== undefined) || (style.borderRadius !== undefined); classNames = el.className ? el.className.split(" ") : []; if (shadows) { classNames.push("box-shadow") } if (borderRad) { classNames.push("border-rad") } classNames.push(browser, platform); ieVersion = parseInt(SC.browser.msie, 10); if (ieVersion) { if (ieVersion === 7) { classNames.push("ie7") } else { if (ieVersion === 8) { classNames.push("ie8") } else { if (ieVersion === 9) { classNames.push("ie9") } else { if (ieVersion === 10) { classNames.push("ie10") } else { if (ieVersion === 11) { classNames.push("ie11") } } } } } } if (browser === "safari" || browser === "chrome") { classNames.push("webkit") } if (SC.browser.mobileSafari) { classNames.push("mobile-safari") } if ("createTouch" in document) { classNames.push("touch") } if (window.navigator.userAgent.toLowerCase().match(/windows nt 5.1/)) { classNames.push("winxp") } el.className = classNames.join(" ") }; SC._relativeUrl_cachedCurrentUrl = (function() { var parts = BUILD_INFO.currentUrl.split("/"); var idx, len = parts.length; for (idx = 0; idx < parts.length; idx++) { if (parts[idx] == "..") { parts.splice(idx, 1); parts.splice(idx - 1, 1); idx--; idx-- } } return parts.join("/") })(); SC.relativeUrl = function(to_url) { if (!BUILD_INFO.useRelativeUrls) { return to_url } var from_parts = SC._relativeUrl_cachedCurrentUrl.split("/"); var to_parts = to_url.split("/"); while (to_parts.length >= 1 && from_parts.length >= 1 && from_parts[0] === to_parts[0]) { from_parts.shift(); to_parts.shift() } var ret = ""; from_parts.pop(); for (var idx = 0, len = from_parts.length; idx < len; idx++) { ret += "../" } ret += to_parts.join("/"); return ret }; SC.absoluteUrl = function(relative_url) { if (relative_url[0] === "/") { return relative_url } var path = window.location.pathname.split("/"), add = relative_url.split("/"), len = add.length, idx; if (path[path.length - 1] === "") { path.pop() } for (idx = 0; idx < len; idx++) { if (add[idx] == ".." && path.length > 0) { path.pop() } else { path.push(add[idx]) } } return path.join("/") }; (function() { if (!BUILD_INFO.images) { return } var styles; if (window.devicePixelRatio > 1 || window.location.search.match(/(\?|&)2x=true/)) { styles = BUILD_INFO.styles.x2; SC.APP_IMAGE_ASSETS = BUILD_INFO.images.x2; BUILD_INFO.stylesDPIUsed = 2 } else { styles = BUILD_INFO.styles.normal; SC.APP_IMAGE_ASSETS = BUILD_INFO.images.normal; BUILD_INFO.stylesDPIUsed = 1 } var head = document.getElementsByTagName("head")[0], len = styles.length, idx, css; for (idx = 0; idx < len; idx++) { css = document.createElement("link"); css.rel = "stylesheet"; css.type = "text/css"; css.href = styles[idx]; css.media = "screen"; head.appendChild(css) } })(); </script> |
<script src="https://cdn.apple-mapkit.com/mk/4.11.x/mapkit.js" type="text/javascript">
</script> <script> SC.benchmarkPreloadEvents.headEnd = getCurrentTimeForPerformance(); </script> </head> <body class="sc-theme sc-focus"> <script> SC.benchmarkPreloadEvents.bodyStart = getCurrentTimeForPerformance(); </script> <script type="text/javascript"> if (SC.setupBodyClassNames) { SC.setupBodyClassNames() }; </script> <div id="loading"> <style> #loading-find{position:fixed;top:0;bottom:0;left:0;right:0; background-color:#7d9bb8;background:-webkit-gradient(linear,left top,left bottom,from(#a3bdd6),to(#7d9bb8));background:-moz-linear-gradient(top,#a3bdd6,#7d9bb8);filter:progid:DXImag eTransform.Microsoft.gradient(startColorstr='#a3bd d6',endColorstr='#7d9bb8');} </style> <div id="loading-find"> </div> </div> <div style="display:none"> <script type="text/javascript" src="/applications/find/1920Project37/ru-ru/javascript-packed.js"> </script> </div> <script> SC.benchmarkPreloadEvents.bodyEnd = getCurrentTimeForPerformance(); </script> </body> </html> Прошу прощения за длинный скрипт, если интересно могу залить этот файл |
Часовой пояс GMT +3, время: 02:32. |