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.

Назад