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

Łatwo jest również zresetować wyjście konsoli, aby użytkownik nie zauważył od razu, co wprowadził. Na przykład można sobie wyobrazić, że podczas kopiowania nieszkodliwego fragmentu kodu można strzelać do swoich partycji.

27670b8ba9840e688369822a3fcfb2d9

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

27670b8ba9840e688369822a3fcfb2d9

Jeśli wybierzesz żądany tekst, na przykład w najnowszej przeglądarce Firefox (wer. 45.0), to nie ten tekst, ale tekst za nim trafi do schowka.

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