JavaScript PasteJacking

Các trình duyệt hiện đại có thể sử dụng JavaScript để truy cập và thao tác với bộ nhớ tạm của người dùng, cả đọc và ghi. Công nghệ cơ bản này không có gì mới, nhưng chỉ gần đây mới xuất hiện ngày càng nhiều các cuộc tấn công (được gọi là "pastejacking") trên mạng, khai thác khả năng này để gây hại cho người dùng không hề hay biết. Việc triển khai điều này trong JavaScript khá đơn giản.


Chỉ tập lệnh sau được tích hợp về mặt độc hại:

27670b8ba9840e688369822a3fcfb2d9

Nếu bạn sao chép bất kỳ văn bản nào từ một trang như vậy, chuỗi không mong muốn luôn kết thúc trong khay nhớ tạm (trong triển khai này bất kể văn bản được sao chép). Thay vì "ác lệnh" bây giờ bạn có thể nghĩ ra rất nhiều điều xấu xí. Toàn bộ điều trở nên nghiêm trọng nếu một dấu ngắt dòng ở cuối dòng được sử dụng để thực thi mã ngay lập tức:

27670b8ba9840e688369822a3fcfb2d9

Cũng có thể dễ dàng đặt lại đầu ra của bảng điều khiển để người dùng không nhận thấy ngay những gì họ đã nhập. Ví dụ: có thể hình dung rằng khi sao chép một đoạn mã vô hại, bạn có thể phá hủy các phân vùng của mình khi truyền qua.

27670b8ba9840e688369822a3fcfb2d9

Bảng tạm có thể được thao tác (ở dạng khác) ngay cả khi không có JavaScript:

27670b8ba9840e688369822a3fcfb2d9

Nếu bạn đánh dấu văn bản mong muốn, chẳng hạn như trong Firefox mới nhất (v. 45.0), thì đó không phải là văn bản kết thúc trong bảng tạm mà là văn bản đằng sau nó.

Cả hai phương pháp có thể được thử trực tiếp tại đây. Đây là biến thể JS:

See the Pen Pastejacking #1 by David Vielhuber (@vielhuber) on CodePen.

Cũng như biến thể CSS:

See the Pen Pastejacking #2 by David Vielhuber (@vielhuber) on CodePen.

Trở lại