JavaScript PasteJacking

Сучасні браузери можуть використовувати JavaScript для доступу та маніпулювання буфером обміну користувача, як для читання, так і для запису. Базова технологія не є чимось новим, але лише нещодавно в Інтернеті з'явилося все більше атак (відомих як "pastejacking"), які використовують цю можливість на шкоду нічого не підозрюючим користувачам. Реалізація цього в JavaScript досить проста.


Тільки наступний сценарій інтегрований на зловмисну ​​сторону:

27670b8ba9840e688369822a3fcfb2d9

Якщо ви скопіюєте будь-який текст з такої сторінки, небажаний рядок завжди потраплятиме в буфер обміну (незалежно від скопійованого тексту в цій реалізації). Замість «злої команди» ви тепер можете придумати багато потворних речей. Все це стає фатальним, якщо розрив рядка в кінці рядка використовується для негайного виконання коду:

27670b8ba9840e688369822a3fcfb2d9

Також легко скинути вихід консолі, щоб користувач не відразу помітив, що він ввів. Наприклад, можна припустити, що копіюючи нешкідливий фрагмент коду, ви можете мимохідь знищити свої розділи.

27670b8ba9840e688369822a3fcfb2d9

Буфером обміну можна керувати (в іншій формі) навіть без JavaScript:

27670b8ba9840e688369822a3fcfb2d9

Якщо ви позначите потрібний текст, наприклад, в останньому Firefox (версія 45.0), у буфер обміну потраплятиме не текст, а текст за ним.

Обидва методи можна випробувати в прямому ефірі тут. Тут варіант JS:

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

Як і варіант CSS:

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

Назад