JavaScript PasteJacking

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


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

27670b8ba9840e688369822a3fcfb2d9

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

27670b8ba9840e688369822a3fcfb2d9

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

27670b8ba9840e688369822a3fcfb2d9

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

27670b8ba9840e688369822a3fcfb2d9

Якщо ви вибрали потрібний текст, наприклад, в останньому Firefox (v. 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.

Назад