Подмнена буфера обмена.

Представьте себе страничку на каком нить сайте, на которой написано интересующее вас, что нужно скопировать. И вы, как любой гражданин, который не любит писать вручную, жмакнете CTRL+C и вставите CTRL+V. Команды выполнятся - скопированное будет вставлено, но, кроме того, втихаря от вас ваша ОС ещё поднимет бэкдорчик на каком нибудь порту и полезет на хост атакующего из за back - connect шелла.

То, что мы видим, будто мы копируем, совсем может быть не то, что фактически копируется и помещается в буфер. Как так происходит? Никакого хардкора, просто используется одна из разновидностей атак UI redressing'a - обобщённое их название clickjacking. Для атаки нужна, правильная последовательность команд для шелла, которая даст что то дельное (например, удалённый шелл), и небольшие махинации с HTML и стилями.

Предположим, мы хотим, чтоб у пользователя отобразилось что нить скопированное, к примеру это, английское, которое позарез нужно и вручную вбивать, точно будет лень

git clone git://git.kernel.org/pub/scm/utils/kup/kup.git

но со скрытым пейлоадом, который исполнится ( пэйлоад - исполняемая многофункциональная начинка, которая позволяет дампить - тырить, что угодно с чужого компа). Чтоб юзверь наверняка словил в буфер всё, пейлоад размещается в середине строки

git clone

<span style"position: absoute; left: -100px; top: -100px>

/dev/null; any_payload; clear;<br>git clone </span>

git://git.kernel.org/pub/scm/utils/kup/kup.git

В центре команды дополняется последовательность командами и польностью прячется span'oм.

Первый git clone отправляется в /dev/null, чтоб он не исполнялся, далее - пэйлоад и повторная git clone с уже не скрытым за </span> параметром. То есть юзер видит только первый кусок git clone и окончание git://git.kernel.org/pub/scm/utils/kup/kup.git. При этом, когда пользователь выделяет и копирует, в буфер обмена уже попадает всё, за исключением элемента span, который убирается браузером.

Первая команда нейтрализуется >/dev/null, а последняя делается аналогичная первой. Далее, надо заставить сработать команды вместе. Если юзер вставит данные строки без их выполнения, то может заметить неладное. Вместо одной, будет несколько, к примеру. Поэтому, надо, чтоб последовательность выполнилась и осталось видимым только то, что нужно. Поэтому, после последовательности вставляется перевод строки. Так как имеем дело с HTML , то в этом случае прописывается <br>

Следующим шагом, прячется вывод исполненных команд. clear выполнит очистку. А сам пейлоад пишется в зависимости от своей фантазии и что именно от него хотят.

Данные манипуляции производятся с любым тесктом, независимо от языка.