Появление в JavaScript средств (https://developer.mozilla.org/en-US/docs/Web/API/Document/ex...) для копирования и изменения данных в буфере обмена открыло двери для организации (https://github.com/dxa4481/Pastejacking) нового вида атаки по организации выполнения команд при вставке данных в терминал из буфера обмена.В отличие от ранее предложенной атаки (https://www.opennet.dev/opennews/art.shtml?num=36619), основанной на размещении невидимого блока "span", новая атака подменяет данные силами JavaScript, отслеживая событие копирования из окна браузера в буфер обмена и через 800 мс после определения нажатия Ctrl+C осуществляя подстановку новых данных в буфер обмена. Метод также предоставляет более простой способ подстановки в буфер обмена спецсимволов и шестнадцатеричных последовательностей (например, "\x1b"), которые могут применяться для атаки (https://security.love/Pastejacking/index2.html) на vim.
В демонстрационном примере (https://security.love/Pastejacking) предлагается скопировать в буфер обмена строку "echo not evil", при вставке которой в терминал будет выполнена последовательность:
<font color="#461b7e">
echo "evil"\n
echo "not evil"
</font>Для скрытия лишнего ввода можно использовать команду "clear", например, в данном примере (https://security.love/Pastejacking/index3.html) будет выведено:
<font color="#461b7e">
touch ~/.evil
clear
echo "not evil"
</font>
URL: https://www.reddit.com/r/netsec/comments/4kr0az/pastejacking.../
Новость: http://www.opennet.dev/opennews/art.shtml?num=44481
>отслеживая событие копирования из окна браузера в буфер обмена и через 800 мс после определения нажатия Ctrl+C осуществляя подстановку новых данных в буфер обменаи чо?
ниче не понял из новости.
Скопировал со страницы "sudo apt-get upgrade", а вставил в командную строку "rm -rf ~/*\n".
почему в новости это не написать?
Потому что остальным всё и так понятно.
либо ты проверяешь команды перед подтверждением, либо не сидишь под рутом.
Желательно то и другое. Но если что - перевод строки в буфер так же замечательно ложится, как и всё остальное. Вставил - и пошло исполнение сразу.
> Желательно то и другое. Но если что - перевод строки в буфер
> так же замечательно ложится, как и всё остальное. Вставил - и
> пошло исполнение сразу.Вставлять в текстовый редактор, проглядывать, затем в консоль.
Попахивает паранойей.Вообще ничего не вставлять - смотришь на страничку и тут же сам в терминале набиваешь.
а как же подтвердить паролем? ведь sudo?
во второй раз судо иногда не спрашивает(после первой авторизации судо, около минуты есть возможность использовать судо без пароля)
когда же народ начнет читать маны?
Defaults timestamp_timeout=0опять же - это линукс, и если пользователь настроил чтобы sudo не спрашивала пароль каждый раз и при этом копипастит (с левых?) сайтов СИСТЕМНЫЕ команды, то это полностью проблемы пользователя...
как отписался ниже комментатор - такое поведение уже давно, а волновать стало только сейчас админов локалхоста.
Почему системные-то ?Просто копипастит - может стих для любимой в vime хочет скопипастить - а там ему system() во все поля.
Стереть все свои пользовательские файлы тоже нельзя назвать безопасной процедурой.
прикольно. теперь копирование из онлайн мануалов стало абсолютно небезопасным
ссылка №5 под статьёй - 2013-го года, так что "теперь" это уже "давно".
А если пройти по ссылкам дальше, то можно найти и статью 2008 года: http://www.ush.it/team/ascii/hack-tricks_253C_CCC2008/wysinw...Не удивлюсь, если об этом писали и до 2008.
Об этом раз в год пишут.http://people.zoy.org/~sam/filsdepute.txt — думаете, это txt, да? Скопируйте и вставьте текст. 2013 год. На чистом HTML, между прочим, без Javascript.
https://thejh.net/misc/website-terminal-copy-paste — еще один вариант.
http://www.ush.it/team/ascii/hack-tricks_253C_CCC2008/wysinw... — за 2008 год.
>>На чистом HTML, между прочимНеправда, там есть CSS.
javascript должен по умолчанию быть отключён! Детский сад! Об этом твердят уже лет пятнадцать, политика многих корпораций предписывает отключать javascript уже давно.
> javascript должен по умолчанию быть отключён! Детский сад! Об этом твердят уже
> лет пятнадцать, политика многих корпораций предписывает отключать javascript уже давно.Не спасёт. Эта атака может быть проведена на чистои HTML.
красота какая. скоро так вот накопипастить можно чужой ключик на машинку, патч Бармина, проксю для браузера и много другой весёлой красоты.
Как забанить доступ к буферу для js?
В некоторых кутешных браузерах была такая галочка в настройках как минимум, по умолчанию снятая.
В лисе: dom.event.clipboardevents.enabled
Сделал в false, перезапустил Лису 46.0.1 (mac os) - пример всё равно работает. Печальо как-то.
Некоторые сайты (вполне добропорядочные) ломаются от этого.
Правильный вариант - NoScript.
С носкриптом ломаются не некоторые сайты, а весь интернет.
> С носкриптом ломаются не некоторые сайты, а весь интернет.даже этот сайт на отлично работает без всякого javascript. Даже у почтовых серверов есть вариант без javascript. Так что не врите!
>> С носкриптом ломаются не некоторые сайты, а весь интернет.
> даже этот сайт на отлично работает без всякого javascript. Даже у почтовых
> серверов есть вариант без javascript. Так что не врите!Зайди для примера хоть на одну социалку, новостной сайт, форум.
ОткрытаяСеть ?
Действительно, ни на винде, ни на осиксе не сработало. Вот гадство-то.
48 бете лисы, увы, не помогло.
>после определения нажатия Ctrl+Cа на мышебуфер не действует, ясно. Заранее вставленные теги продолжают рулить.
Точно, с мышебуфером не работает. Прекрасно :)
это просто пример, реализованный через document.addEventListener('keydown', ...),
демонстрирующий изменение буфера из javascript от нажатий клавиш.
Очевидно, изменить буфер из javascript можно когда угодно (даже независимо от действий пользователя).
похоже наврал
Palemoon 26.0 не могу воспроизвести, это только в новых версиях актуально?
> Palemoon 26.0 не могу воспроизвести, это только в новых версиях актуально?Да, только в новых. В Firefox 38 не работает, а в Firefox 46 сработало нормально.
> Да, только в новых. В Firefox 38 не работает, а в Firefox
> 46 сработало нормально.Прогресс, однако...
Firefox 46.0.1 не работает.
> Firefox 46.0.1 не работает.Каюсь, работает.
Анонизмус писатель, не читатель.
Вы о чем, ребята?
> Вы о чем, ребята?О дегенератах вроде тебя.
Ничего не поделаешь, это JavaScript...
в хроме не пашет
в лисе тоже
Аналогично. А кто подвержен тогда?
Работает. в noscript сначала надо разрешить и копировать не мышей, а с клавиатуры.
да, через клавиатуру работает, спасибо
Ну пока получается защита - копировать мышкой или проверять содержимое буфера перед вставкой ...
> в хроме не пашет
try {
var successful = document.execCommand('copy');
var msg = successful ? 'successful' : 'unsuccessful';
console.log('Copying text command was ' + msg);
} catch (err) {
console.log('Oops, unable to copy');
}А что в консоли у хрома, если не секрет?
>[оверквотинг удален]
>
> console.log('Copying text command was ' + msg);
>
> } catch (err) {
>
> console.log('Oops, unable to copy');
>
> }
>
"Copying text command was successful"
в палемоне с мышебуфером и ноускриптом не работает. Когда заработает, напишите новость
во wget тоже не работает
Напиши тут про PaleMoon когда он лицензию сменит с проприетарной на свободную.
MPL нынче проприетарная лицензия? ок, ещё один даун на опеннете
странно. яваскрипт-хейтерков пока почему-то не слышно...
Так нам наплевать - у нас JS отключен практически везде, а сама "новость" абсолютно тривиальна и ожидаема.
> странно. яваскрипт-хейтерков пока почему-то не слышно...А фанатам разве не все божья роса^W^W равно? Они же искренно считают "вэээб технулогии" абсолютом гениальности, а не историческим нагромождением костылей, подпорок, картона и изоленты …
всё костыль. Но ненавидеть следует только яваскрипт. Ишь чегось удумали - в буфер обмена лезть. Туда только сишникам и плюсовикам можно!
Да, только им. И только если подразумевается работа только на локальной машине, в идеале.
Дык, забыл когда юзал Ctrl-V/Ctrl-C, мыш-буфера достаточно. А венде тут таки да капец ;)
> Дык, забыл когда юзал Ctrl-V/Ctrl-C, мыш-буфера достаточно. А венде тут таки да
> капец ;)Вот тут и с мышом работает: https://thejh.net/misc/website-terminal-copy-paste ! :)
Дык, пашет. Походу пора paste() в терминале секьюрить.
В "правильных" терминалах уже давно :)google -> rxvt confirm-paste
Более того, тут работает безо всякого javascript, потому что сделано через слой css.Спасибо за полезный каммент.
> А венде
Открыли Америку... Много лет уже существуют сайты, на которых при копировании текста в буфер добавляется ссылка на сайт. И только сейчас кто-то догадался, что можно не только ссылки, но и консольные команды добавлять?
В фаерфоксе 45 без носкриптов и прочего треша не сработало. В консоли:document.execCommand('cut'/'copy') was denied because it was not called from inside a short running user-generated event handler.
В хромиуме 48 воспроизвелось.
> В фаерфоксе 45 без носкриптов и прочего треша не сработало. В консоли:
> document.execCommand('cut'/'copy') was denied because it was not called from inside a short
> running user-generated event handler.
> В хромиуме 48 воспроизвелось.У меня FF v46.0, SeaMonkey v2.40 работает! :(
У меня вообще по-интересному работает. Один раз Ctrl+C нажал:> Copying text command was unsuccessful Pastejacking:57:17
> Copying text command was successful Pastejacking:57:17
> В выполнении document.execCommand('cut'/'copy') было отказано, так как оно не было вызвано изнутри короткоживущего обработчика события, сгенерированного пользователем.
в 45 лисе на debian sid система зависла (после отключения noscript), пришлось нажать alt+sysreq и reb
в 48 хроме не воспроизвелось. линукс.
Google-oriented programming :-)
в ff 36.0.1 это действует только при вставке внутри браузера, на терминал не влияетнадо отправить багрепорт
Новость стара как мир, как и атака через WPAD. Еще с год назад читал статью про манипуляцию с буфером обмена.
Новость стара, но азбуку до сих пор печатают! Молодёжь ещё не знает, а с другой стороны склероз наступает :) Повторенье -мать учения.
> Новость стара, но азбуку до сих пор печатают! Молодёжь ещё не знает,
> а с другой стороны склероз наступает :) Повторенье -мать учения.Беда в том, что дураков не способен даже собственный опыт научить. Не то, что чужой.
Так было и так, к сожалению, будет.
>> Новость стара, но азбуку до сих пор печатают! Молодёжь ещё не знает,
>> а с другой стороны склероз наступает :) Повторенье -мать учения.
> Беда в том, что дураков не способен даже собственный опыт научить. Не
> то, что чужой.
> Так было и так, к сожалению, будет.мягко напомнить им всё же следует, а если не поможет, то залезть к ним на компьютер и зашифровать все файлы, а потом потребовать выкуп за разшифровку, раз не понимают по хорошему.
я изначально знал, что давать доступ к копированию через js - очень плохая идея. раньше это было закрыто мозилловским нестандартизированным апи + обязательной подписью js у мозиллы, то теперь это стало стандартом и без всяких разрешений.
И чего? В чём проблема? А при чём тут яваскрипт? Он чё сам по себе это делает? Маразматорий, честно. С такой логикой вообще ВСЁ надо поотключать и вообще не пользоваться никакими программами, они ведь опасность потенциальную несут. Страдаете х*йнёй! :)