Kort samengevat: black-hat SEO-injectie van verborgen links op .gov- en .edu-domeinen
- Geen betaaldiefstal: Iedereen presenteert client-side aanvallen als betaaldiefstal. Deze bewapende in plaats daarvan het vertrouwen van overheden en universiteiten voor zoekresultaten, wat erger is, want niemand in security behandelt een incident dat alleen de Google-positie van een Turkse gokconcurrent schaadt.
- 500+ sites getroffen: Meer dan 500 websites droegen de scriptapi[.]dev-injectie, die insertAdjacentHTML gebruikte om gok- en adult-spamlinks te verbergen via inline CSS, en geen enkele threat feed op VirusTotal markeerde het domein. Onze domain directory pikte scriptapi[.]dev op 20 januari 2025 op, voordat welke leverancier dan ook dat deed.
- Audit je CMS nu: Als je CMS WordPress, ASP.NET, vBulletin, CodeIgniter of 1C-Bitrix combineert en je hebt third-party JS op high-authority pagina's nog niet geauditeerd, doe dat deze week. Zoekmachines indexeren wat de DOM bevat, niet wat je CMS-template zegt.
Weinig tijd? Bekijk cside's in-browser Magecart- en skimmerblokkering. Dit dekt alles hieronder in één deployment.
Gisteren ontdekten we opnieuw een client-side JavaScript-aanval gericht op +500 websites, waaronder overheden en universiteiten. De geïnjecteerde scripts creëren verborgen links, die verwijzen naar externe websites, binnen het Document Object Model (DOM), de programmeerinterface voor webdocumenten.
Op dit moment heeft geen enkele threat feed deze aanval gedetecteerd.
We denken dat dit een black hat Search Engine Optimization (SEO) campagne is. De geïnjecteerde scripts creëren verborgen links die verwijzen naar externe websites. Deze links zijn met CSS gestyled om onzichtbaar te zijn voor gebruikers:
style="overflow: auto; position: absolute; height: 0pt; width: 0pt;"


De kwaadaardige scripts worden gehost op scriptapi[.]dev. We vonden meerdere varianten van hetzelfde script, gehost op hetzelfde domein:
- scriptapi[.]dev/api/smacr[.]js
- scriptapi[.]dev/api/en[.]tlu[.]js
- scriptapi[.]dev/api/sie[.]tlu[.]js
- scriptapi[.]dev/api/ppymca[.]js
- scriptapi[.]dev/api/pbsgc[.]js
- scriptapi[.]dev/api/adventum[.]js
- scriptapi[.]dev/api/harvardpress[.]js
- scriptapi[.]dev/api/krachelart[.]js
- scriptapi[.]dev/api/malagaadventures[.]js
Onze domain directory identificeerde het kwaadaardige domein op 20 januari 2025.

Het mechanisme van het script:
- Ophalen van de script tag: Met behulp van document.currentScript identificeert het kwaadaardige script zijn locatie in de DOM.
- Injecteren van verborgen links: Het gebruikt de methode insertAdjacentHTML('beforebegin', linksHTML) om de links vóór de script tag in de DOM in te voegen.
Een screenshot van een getroffen website, waarop meerdere domeinen zichtbaar verborgen zijn:

const linksHTML = `
<div style="text-align: center; display: table-column">
<a href="https://fullfilmizle[.]net/" title="full film izle">full film izle</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://myremedyproducts[.]com" title="myremedyproducts[.]com">myremedyproducts[.]com</a>
<a href="https://albalondres[.]com" title="albalondres[.]com">albalondres[.]com</a>
<a href="https://kineticartstucson[.]com" title="kineticartstucson[.]com">kineticartstucson[.]com</a>
<a href="https://stolenbeauty[.]org" title="stolenbeauty[.]org">stolenbeauty[.]org</a>
<a href="https://www.bilgihocasi[.]com" title="www.bilgihocasi[.]com">www.bilgihocasi[.]com</a>
<a href="https://joinoilfield[.]com" title="joinoilfield[.]com">joinoilfield[.]com</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://betswot[.]com" title="starzbet">starzbet</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://alanyasmmm[.]com/" rel="dofollow">alanya escort</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://nevizadecafe[.]com/" title="deneme bonusu">deneme bonusu</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://alansh[.]com" title="tlcasino">tlcasino</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://pmtips[.]net/">crackstreams</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="http://lasip[.]net/" title="antalya escort bayan">antalya escort bayan</a>
<a href="http://www.niceescorts[.]com/" title="antalya escort">antalya escort</a>
<a href="https://www.shushescort[.]com/" title="istanbul escort bayan">istanbul escort bayan</a>
<a href="https://servissirinevler[.]com/" title="şirinevler escort bayan">şirinevler escort bayan</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://www.umraniyeti[p.]net/anadolu-yakasi/kadikoy-escort/">escort kadıköy</a>
<a href="http://www.doescorts[.]com/">www.doescorts[.]com</a>
<a href="http://www.umraniyeescorts[.]com/">ümraniye escort bayanlar</a>
<a href="http://www.maltepeescort[.]com/">escort maltepe</a>
<a href="https://pendikroyal[.]com/">pendik escort</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://www.xxxpornxxx[.]net/video/12776/nunziato-xxx-porn/" title="nunziato xxx porn">nunziato xxx porn</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://www.ipsnews[.]net/">streameast</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://yatirimbonusu[.]com/" title="deneme bonusu veren siteler">deneme bonusu veren siteler</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://justgpu[.]com/" title="deneme bonusu veren siteler">deneme bonusu veren siteler</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://sojienergy[.]com/" title="deneme bonusu veren siteler">deneme bonusu veren siteler</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://romabet.online" target="_blank" title="romabet giriş">romabet giriş</a>
<a href="https://betgargirisyap[.]com" target="_blank" title="betgar giriş">betgar giriş</a>
<a href="https://romabetgiris3[.]com" target="_blank" title="romabet giriş">romabet giriş</a>
<a href="https://roketbetgirisyap[.]com" target="_blank" title="roketbet giriş">roketbet giriş</a>
<a href="https://roketbet[.]net" target="_blank" title="roketbet giriş">roketbet giriş</a>
<a href="https://roketbetgiris[.]com" target="_blank" title="roketbet giriş">roketbet giriş</a>
<a href="https://ligobetbahis[.]com/" target="_blank" title="ligobet giriş">ligobet giriş</a>
<a href="http://ligobet1[.]net" target="_blank" title="ligobet giriş">ligobet giriş</a>
<a href="https://ligobetgiris[.]org/" target="_blank" title="ligobet giriş">ligobet giriş</a>
<a href="https://ligobetgirisi[.]com/" target="_blank" title="ligobet giriş">ligobet giriş</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://denemebonususiteleri[.]net/" title="deneme bonusu veren siteler">deneme bonusu veren siteler</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://princearthurherald[.]com/" title="deneme bonusu veren siteler">deneme bonusu veren siteler</a>
<a href="https://westpasco[.]com/" title="deneme bonusu veren siteler">deneme bonusu veren siteler</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://www.airstreamofchicago[.]com/" title="casino siteleri">casino siteleri</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://chrisspielman[.]com/" title="deneme bonusu" target="_blank">deneme bonusu</a>
<a href="https://www.bestwesterndesignerinn[.]com/" title="deneme bonusu veren siteler" target="_blank">deneme bonusu veren siteler</a>
<a href="https://www.catch25li[.]com/" title="Canlı casino siteleri" target="_blank">Canlı casino siteleri</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="http://1xbetm[.]info/" title="1xbet giriş">1xbet giriş</a>
<a href="https://xslotx[.]com/trx/" title="xslot giriş">xslot giriş</a>
<a href="https://zbahisz[.]com/zb/" title="zbahis">zbahis</a>
<a href="https://betturkeygiris[.]org/tur/" title="betturkey giriş">betturkey giriş</a>
<a href="https://www.trbetr[.]com/" title="trbet">trbet</a>
<a href="https://www.wiibet[.]com/tr10/" title="betist">betist</a>
<a href="https://babilonbeto[.]com/" title="babilonbet">babilonbet</a>
<a href="https://betrollere[.]com/" title="betroller">betroller</a>
<a href="https://bahisbudurtr[.]com/" title="bahisbudur">bahisbudur</a>
<a href="https://www.bahiscom[.]info/tr/" title="bahis[.]com">bahis[.]com</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://siliconvalleywineries[.]com/" title="deneme bonusu veren siteler" target="_blank">deneme bonusu veren siteler</a>
<a href="https://tapoutdrinks[.]com/" title="casino siteleri" target="_blank">casino siteleri</a>
<a href="https://www.qujapan1635[.]com/" title="bahis siteleri" target="_blank">bahis siteleri</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://buy.fans/" title="buy.fans">buy.fans</a>
</div>
<div style="overflow: auto; position: absolute; height: 0pt; width: 0pt;">
<a href="https://mobilbahisgir[.]net/" title="mobilbahis">mobilbahis</a>
<a href="https://rokubetgir[.]com/" title="rokubet">rokubet</a>
</div>
`;
const scriptTag = document.currentScript;
scriptTag.insertAdjacentHTML('beforebegin', linksHTML);
Het doel van deze aanval
Deze onzichtbare links worden geïndexeerd door zoekmachines. Deze zoekmachines detecteren de links op gerenommeerde websites en kennen er SEO-waarde aan toe. Deze links zijn verborgen, zodat ze de gebruikerservaring niet verstoren en niet gemakkelijk worden opgemerkt door website-eigenaren.
Benaderingen zoals deze worden vaak black hat SEO-technieken genoemd.
We vonden meer dan 500 websites die getroffen zijn door deze campagne, waaronder grote overheids- en universiteitsdomeinen. Getroffen sites gebruikten een breed scala aan frameworks, wat wijst op de brede reikwijdte van de aanval:
- WordPress 6.7.1
- MS ASP.NET
- vBulletin
- PHP CodeIgniter
- 1C-Bitrix
De meeste van deze websites zijn hier openbaar:
https://publicwww.com/websites/scriptapi.dev/ https://urlscan.io/search/#scriptapi.dev
Bredere implicaties
Deze aanval benadrukt het groeiende risico van supply chain-aanvallen in webontwikkeling. Third-party scripts zijn vaak een zwakke plek vanwege hun directe toegang tot de DOM. Hierdoor kunnen ze vrijwel elke actie uitvoeren in de browser van de gebruiker, het eindpunt van de web supply chain.
Mitigatie en bescherming
Als eerste stap, update uw WordPress-plugins, evalueer hun gebruik en verwijder ongebruikte plugins. Vind de malware en verwijder deze. Aanvallers laten meestal een backdoor achter. Vind en verwijder deze.
cside kan client-side aanvallen zoals deze detecteren, waarschuwen en blokkeren dankzij onze geavanceerde detectie-engine en proxy.
Als u geen cside-klant bent, zijn hier andere stappen die u kunt nemen:
- Implementeer een Content Security Policy (CSP): Beperk de opname van third-party scripts tot vertrouwde domeinen.
- Gebruik Subresource Integrity (SRI): Valideer de integriteit van extern gehoste scripts door hashes te vergelijken.
- Monitor DOM-wijzigingen: Gebruik tools of scripts om ongeautoriseerde DOM-wijzigingen te detecteren, vooral de injectie van verborgen elementen.
- Controleer regelmatig third-party scripts: Bekijk periodiek afhankelijkheden en zorg ervoor dat er geen ongeautoriseerde wijzigingen zijn aangebracht.
- Gebruik Web Application Firewalls (WAF): Bescherm uw website tegen verdacht verkeer en ongeautoriseerde script-opnames.
Start vandaag gratis of neem contact met ons op om risico's te beperken









