JavaScript PasteJacking

Với sự trợ giúp của JavaScript, các trình duyệt hiện đại có thể đọc và ghi vào khay nhớ tạm của người dùng, tức là họ cũng có thể thao tác với nó. Công nghệ cơ bản vốn đã cũ, nhưng chỉ gần đây, ngày càng có nhiều cuộc tấn công (dưới tên "PasteJacking") đã được lan truyền trên Internet, nhằm tận dụng khả năng này cho người dùng thiếu kinh nghiệm. Triển khai trong JavaScript là tầm thường.


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 dễ dàng thiết lập lại đầu ra 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ể tưởng tượng rằng khi sao chép một đoạn mã vô hại, bạn có thể bắn các phân vùng của mình đi qua.

27670b8ba9840e688369822a3fcfb2d9

Clipboard có thể được điều khiển (ở một dạng khác) ngay cả khi không có JavaScript:

27670b8ba9840e688369822a3fcfb2d9

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

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