JavaScript PasteJacking

Nowoczesne przeglądarki mogą wykorzystywać JavaScript do uzyskiwania dostępu do schowka użytkownika i manipulowania nim, zarówno podczas odczytu, jak i zapisu. Technologia ta nie jest niczym nowym, ale dopiero niedawno pojawiło się w sieci coraz więcej ataków (znanych jako „pastejacking”), wykorzystujących tę możliwość na szkodę niczego niepodejrzewających użytkowników. Implementacja tego w JavaScript jest dość prosta.


Po złośliwej stronie zintegrowany jest tylko następujący skrypt:

27670b8ba9840e688369822a3fcfb2d9

Jeśli skopiujesz jakikolwiek tekst z takiej strony, niechciany ciąg zawsze znajdzie się w schowku (niezależnie od skopiowanego tekstu w tej implementacji). Zamiast „złego rozkazu” możesz teraz wymyślić wiele brzydkich rzeczy. Cała sprawa staje się fatalna, jeśli do natychmiastowego wykonania kodu zostanie użyty podział wiersza na końcu linii:

27670b8ba9840e688369822a3fcfb2d9

Można także łatwo zresetować wyjście konsoli, tak aby użytkownik nie od razu zauważył, co wprowadził. Można na przykład wyobrazić sobie, że kopiując nieszkodliwy fragment kodu, możesz mimochodem zniszczyć partycje.

27670b8ba9840e688369822a3fcfb2d9

Schowekiem można manipulować (w innej formie) nawet bez JavaScript:

27670b8ba9840e688369822a3fcfb2d9

Jeśli zaznaczysz żądany tekst, np. w najnowszym Firefoksie (v. 45.0) to nie tekst trafi do schowka, ale tekst znajdujący się za nim.

Obie metody można wypróbować na żywo tutaj. Tutaj wariant JS:

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

Jak również wariant CSS:

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

Plecy