Комментарии 52
Ещё одна причина не открывать PDF в браузере. :)
Интересно, остались ли ещё форматы, которые можно безопасно открывать? ))
остались ли ещё форматы, которые можно безопасно открывать?
.TXT
!
Строго говроя, любой антивирь должен бы ругаться на него: https://secure.eicar.org/eicar.com.txt
Ругается :)
Так его ж в редакторе открывают, а не на выполнение запускают.
Я его на компьютере открываю, в программе, которая работает в операционной системе, и всё это контролируется ещё кучей другого софта.
В данном случае, открытый текстовик был обработан антивирусом. Кто ещё его может захотеть прочитать и проанализировать, никому не ведомо.
Кто ещё его может захотеть прочитать и проанализировать, никому не ведомо.
Ну это ж Ваш компьютер. Если Вы позапускали на нём кучу всякой ерунды и теперь не знаете, что на нём творится — то кто ж Вам доктор?
Если Вы позапускали на нём кучу всякой ерунды
Так там эта ерунда уже встроена. Она там для чего-то нужного и полезного, по мнению тех кто делал рперационную систему или брендовый компьютер с фирмварью.
Ну или поставлена Вами, потому что это просто нужная вам программа, в которой официально ничего такого не заявлено.
Кстати, вот.
https://habr.com/ru/companies/mvideo/articles/652843/
1)Казалось бы, вы же просто ТЕКСТОМ переписываетесь, но нет - там ещё куча дополнительного функционала встроена, который сам себе запускается.
2) Вы принимаете GIF, а он работает как PDF (из-за того самого автоопределения)
3) Растровый графический формат JBIG2 начинает исполнятся как программа.
Нет вообще никакой гарантии того, что пришедший к вам текстовик не будет содержать в начале указание на то, что это программа и система его молча не выполнит.
Так там речь про графический формат. Как это связано с .TXT
?
система его молча не выполнит.
А зачем Вы ставите себе какую-то систему, которая делает вещи без Вашего разрешения? На такой системе вообще ничего делать небезопасно — даже крышку открывать.
1) Так что, этот TXT может быть пропущен через супер-мега-экстра-смарт-интеллектуальный определитель типа файла. Определитель обнаружит в начале указание на то что это исполняемый файл, передаст его на исполнение системе. Код в начале файла исполнится, потом удалит сам себя, а разницу в месте забъёт пробелами в концах строк.
2) Текстовый редактор может интеллектуально работать с текстом, трактуя его по каким-то своим правилам. И какую-то последовательность символов он может явно счесть тем, что надо исполнить в системе, а после какой-то у него просто случится переполнение буфера.
3) Всё то же самое, только делать это будет превьювер показывающий информацию при наведении мушки на иконку, или превьювер показывающий в панеле задач открытые файлы.
Ну или обнаружите Вы в текстовике какой-то странный набор символов, поднесёт к нему мышку, и "простой текстовый редактор" определит что это заэнкоженная картинка и захочет показать Вам её превьюху.
Я люблю почитывать новости про уязвимости и верю в талант разработчиков - они смогут сделать что-то такое, что нас прям ВАУ как удивит.
А Вы что, из луддитов и техноскептиков, считающих что разработчики софта недостаточно талантливы?
Так я и говорю: сначала сами создают себе машину, которая думает за человека — а потом начинают жаловаться «ой, что‑то она как‑то не то думает».
А в FARе редактор текстовых файлов простой как две копейки: открывает файл как текст и не выйоживается.
А вы только FARом всегда пользуетесь? Разработку в супер-пупер-умной IDE не ведете?
а потом начинают жаловаться «ой, что‑то она как‑то не то думает»
А вот сейчас обидно было.
Разве пользователь софта сам себе этот софт создаёт?
Я обобщённо про человечество в целом.
Но иногда — таки да. Вот я например.
А в FARе редактор текстовых файлов простой как две копейки: открывает файл как текст и не выйоживается.
Не такой уж и простой. Загружая текст, показывая его, выполняя команды редактирования (вставка и удаление символов и все такое), этот "простой" редактор выполняет код плагинов и макросов. Как минимум раскраска синтаксиса по умолчанию работает. И 100% гарантий, что там нет уязвимости, которая по кской-то последовательности символов сделае что-то нехорошее, нет.
Загружая текст, показывая его, выполняя команды редактирования (вставка и удаление символов и все такое), этот "простой" редактор выполняет код плагинов и макросов.
(с грустью): Не знаете Вы, как FAR-овский редактор работает, ой не знаете...
Досконально не знаю, настолько глубоко в его исходники не погружался, ибо не располагаю такими запасами свободного времени.
Опять же, в силу некоторых причин под виндой пользуюсь третьей версией фара (его исходники и смотрел).
И, внезапно, при открытии файла в редакторе третьей версии фара происходит вызов плагина colorer (вроде так называется, мог ошибиться в мелочах, а запусаать винду только для уточнения этого момента не хочется).
При вводе текста также происходит вызов означенного плагина, что по мере ввода изменяет раскраску текста.
Так в некоторых версиях на некоторых файлах этот плагин со свистом и грохотом падал, иногда даже роняя сам фар.
Понятно, что все плагины (и макросы заодно) можно завсегда отключить. Но тогда не будкт раскраски синтаксиса. И нафига мне лишаться такого улрбства? И где гарантии, что уязвимости нет в самом редакторе? Там при желании можно что-нибудь нарисовать на "обработку" символов, в текстах обычно не встречающихся. А еще там есть работа с разными кодировками и, о ужас, отображение символов на экране определенным шрифтом, заданным в свойствах сеанса (это, конечно, не в самом фаре происходит, а на уровне системы, но от того не легче) .
Под линуксом у меня far2l. И в нем тоже и подсветка синтаксиса, и работа с разными кодировками, и системные вызовы.
А проверять досконально, что там в исходниках фара, используемых им библиотек и системы... Жить и работать когда прикажете?
(с грустью):
Тут невероятно смешно то, что мы ведь говорим о файлах, поступивших извне.
Скачанных из интернета с помощью браузера или пришедших на съёмном носителе. Их скачивал какой-то софт, их пропустила сквозь себя операционная система, в которой ну много очень функционального и полезного для пользователя софта.
Но да, через сам текстовый редактор никакая зараза не прорвётся.

.
А разве в юникоде нет символов "не показывать эту строку" и "втихую открыть эту урлу и передать скачанное софту прописанному в системе" ну или просто "вызвать другую программу вот с этими параметрами" ?
Ну удобно же. Например, ты писатель и тебе нужно вдохновение.
Ты открывает текстовик, а тебе показывают рандомную цитату великих писателей или картинку с веб-камеры на Алтае, горным пейзажем.
А разве в юникоде нет символов
Не знаю, что там у вас в юникоде (насколько мне известно — таки нет) — но я вообще-то про ASCII говорил. Там точно нет.
но я вообще-то про ASCII говорил
Вы можете говорить что угодно,а редактор давно уже с Юникодом.
А может уже и с markdown, поэтому при вставке текста из буфера, редактор html код страницы, откуда скопировано, разбирает для вставки в виде markdown.
А можно ведь сделать ещё функционал редактора, чтобы он проверял начало файла, определял что это и включал подсветку кода. Удобно же.
Вы можете говорить что угодно,а редактор давно уже с Юникодом.
Я не знаю, какой там у Вас бардак творится — а я всё‑таки знаю, что у меня на моём компьютере установлено.
(А они ещё спрашивают — «а почему ты не ставишь Windows 10 11»...)
а я всё‑таки знаю, что у меня на моём компьютере установлено.
У Вас Windows ?
В корне диска C:\
Зажимаете Control и выделяете папки "Windows", "Program Files" и, если будут другие папки начинающиеся с "Program Files", их тоже.
Отпускаете Control.
Жмёте правой кнопкой на одну из выделенных папок и в выпавшем меню выбираете пункт "Свойства".
Смотрите на количество файлов и задаёте себе вопрос "А я точно знаю, что каждый из этих файлов делает?"
Можно проще.
Жмёте одновременно Control+Shift+Escape, смотрите на запущенные процессы и задаёте тот же вопрос.
Ща JetBrains установит вам в IDE какой-нибудь плагин - и больше не знаете вы ничего)
я вообще-то про ASCII говорил. Там точно нет
Такой крутизны нет, конечно. Но есть в нем несколько управляющих символов (в том числе символ с кодом 8). Казалось бы, все просто, как апельсин, но вы не контролируете реализацию обработки управляющих символов. И встречались редакторы, где обработка этих самых управляющих символов приводила к забавным (и не очень) спецэффектам, в том числе опосредованным (то самое сокрытие строк скрипта, выполнение которых нежелательно).
А разве в юникоде нет символов "не показывать эту строку" и "втихую открыть эту урлу и передать скачанное софту прописанному в системе" ну или просто "вызвать другую программу вот с этими параметрами" ?
Нет. Но в шрифте можно многое сделать. Если работать со сложным документом и использовать особый шрифт, то можно очень интересных спецэффектов добиться.
Нет
Это пока, но я верю в людей.
А со шрифтами тема интересная, да.
С одной стороны, в каком-то старом обсуждении на Хабре была идея "заменить шрифты у клиента, чтобы ему не те цифры в договоре показывало", но как правильно было отмечено - если вы можете заменить у клиента шрифты, то можете ещё много чего делать.
А с другой, эти шрифты можно как нибудь подгрузить снаружи. Этот, несомненно, удобный и прогрессивный, функционал может оказаться где угодно.
.TXT!
В теории да. На практике же с малой, но ненулевой вероятностью [ваш любимый редактор] может встретить специальную неожиданную последовательность и сойти с ума, упав, но посмертно сделав кульбит навроде переполнения стека, а далее сами знаете что... Причём это может произойти не только по вине самого редактора, а в любом из его компонентов - например, отрисовщике глифов при использовании интересного шрифта, а и даже при дивном их сочетании...
Так-то в теории, все отображаемые форматы: тексты, картинки, аудио и видео - должны только показываться, и ничего не исполнять, если в формате не предусмотрена вставка макросов и т.п. Но увы, всё зависит почти полностью от редактора/просмотрщика/плеера и его сочетании с Оськой и вспомогательными компонентами...
И чем умнее софтина пытается быть (как уже упоминалось, определять формат по содержимому, или пытаться в данных что-то вычислять - к примеру, значения в json) тем больше вероятность содержания уязвимости и соответственно её эксплуатации. А значит, что примитивнейший просмотрщик текстов с поддержкой только ascii и работающий в текстовом режиме - скорее всего будет железно непробиваем; других столь же сильных гарантий нет.
Но увы, всё зависит почти полностью от редактора/просмотрщика/плеера
Так-то так, но я уже сколько раз говорил: сначала сами понаставят себе всякой ерунды — а потом жалуются.
примитивнейший просмотрщик текстов с поддержкой только ascii и работающий в текстовом режиме - скорее всего будет железно непробиваем
(Восхищённо): Господа, а этот — соображает!
Vim?
Если есть возможность исполнения данных, то ни один.
Следующая стадия: DOOM в PDF
Очередное напоминание того, что pdf в браузере это опасно XD
Cам тетрис написан на JavaScript, а вот уже для генерации PDF используется скрипт на Python. Сам этот PDF у меня не открылся в Preview (macOS) и Adobe Acrobat Reader, ошибка файла. Только в браузере заработало, интересно, почему?
Вообще, то, что JS скрипты можно добавить в свой PDF я знал еще достаточно давно, на них делались всякие интерактивные штуки. Вот, к примеру, документация и статьи на эту тему:
https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/index.html
https://helpx.adobe.com/acrobat/using/applying-actions-scripts-pdfs.html
https://www.nutrient.io/blog/using-javascript-in-pdf-form-fields/
https://github.com/cornerpirate/JS2PDFInjector?tab=readme-ov-file
Интересно, можно ли сделать терминал? Наверное нет, т.к. скорее всего запрещено работать с сетью или с любыми другими ресурсами вне самого PDF. Но наверное можно сделать простой GUI фремворк и реализовать на нем например TODO лист :)
Представлен проект pdftris — тетрис в PDF в браузере