Как стать автором
Поиск
Написать публикацию
Обновить

Комментарии 52

Ещё одна причина не открывать PDF в браузере. :)

Интересно, остались ли ещё форматы, которые можно безопасно открывать? ))

Ругается :)

Так его ж в редакторе открывают, а не на выполнение запускают.

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

В данном случае, открытый текстовик был обработан антивирусом. Кто ещё его может захотеть прочитать и проанализировать, никому не ведомо.

Кто ещё его может захотеть прочитать и проанализировать, никому не ведомо.

Ну это ж Ваш компьютер. Если Вы позапускали на нём кучу всякой ерунды и теперь не знаете, что на нём творится — то кто ж Вам доктор?

Если Вы позапускали на нём кучу всякой ерунды

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

Ну или поставлена Вами, потому что это просто нужная вам программа, в которой официально ничего такого не заявлено.

Так там эта ерунда уже встроена.

«Что один человек построил — то другой завсегда разобрать может!» ©

Кстати, вот.

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 какой-нибудь плагин - и больше не знаете вы ничего)

Ща JetBrains установит вам в IDE какой-нибудь плагин

Спасибо, у меня свой brain есть!

Ахахах а вы разбираетесь я смотрю))

я вообще-то про ASCII говорил. Там точно нет

Такой крутизны нет, конечно. Но есть в нем несколько управляющих символов (в том числе символ с кодом 8). Казалось бы, все просто, как апельсин, но вы не контролируете реализацию обработки управляющих символов. И встречались редакторы, где обработка этих самых управляющих символов приводила к забавным (и не очень) спецэффектам, в том числе опосредованным (то самое сокрытие строк скрипта, выполнение которых нежелательно).

А разве в юникоде нет символов "не показывать эту строку" и "втихую открыть эту урлу и передать скачанное софту прописанному в системе" ну или просто "вызвать другую программу вот с этими параметрами" ?

Нет. Но в шрифте можно многое сделать. Если работать со сложным документом и использовать особый шрифт, то можно очень интересных спецэффектов добиться.

Нет

Это пока, но я верю в людей.

А со шрифтами тема интересная, да.

С одной стороны, в каком-то старом обсуждении на Хабре была идея "заменить шрифты у клиента, чтобы ему не те цифры в договоре показывало", но как правильно было отмечено - если вы можете заменить у клиента шрифты, то можете ещё много чего делать.

А с другой, эти шрифты можно как нибудь подгрузить снаружи. Этот, несомненно, удобный и прогрессивный, функционал может оказаться где угодно.

Это пока, но я верю в людей.

Верить в людей - это всегда плохая затея

.TXT!

В теории да. На практике же с малой, но ненулевой вероятностью [ваш любимый редактор] может встретить специальную неожиданную последовательность и сойти с ума, упав, но посмертно сделав кульбит навроде переполнения стека, а далее сами знаете что... Причём это может произойти не только по вине самого редактора, а в любом из его компонентов - например, отрисовщике глифов при использовании интересного шрифта, а и даже при дивном их сочетании...

Так-то в теории, все отображаемые форматы: тексты, картинки, аудио и видео - должны только показываться, и ничего не исполнять, если в формате не предусмотрена вставка макросов и т.п. Но увы, всё зависит почти полностью от редактора/просмотрщика/плеера и его сочетании с Оськой и вспомогательными компонентами...

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

Но увы, всё зависит почти полностью от редактора/просмотрщика/плеера

Так-то так, но я уже сколько раз говорил: сначала сами понаставят себе всякой ерунды — а потом жалуются.

примитивнейший просмотрщик текстов с поддержкой только ascii и работающий в текстовом режиме - скорее всего будет железно непробиваем

(Восхищённо): Господа, а этот — соображает!

(Восхищённо): Господа, а этот — соображает!

"скорее всего"

сами понаставят себе всякой ерунды

Ага. Например, ОС.

Vim?

Вы про списки CVE для vim или про ситуацию, когда одно неловкое движение пальцами и вставляемый из буфера текст становится программой?

Если есть возможность исполнения данных, то ни один.

Следующая стадия: DOOM в PDF

Очередное напоминание того, что pdf в браузере это опасно XD

Cам тетрис написан на JavaScript, а вот уже для генерации PDF используется скрипт на Python. Сам этот PDF у меня не открылся в Preview (macOS) и Adobe Acrobat Reader, ошибка файла. Только в браузере заработало, интересно, почему?

Вообще, то, что JS скрипты можно добавить в свой PDF я знал еще достаточно давно, на них делались всякие интерактивные штуки. Вот, к примеру, документация и статьи на эту тему:

  1. https://opensource.adobe.com/dc-acrobat-sdk-docs/library/jsapiref/index.html

  2. https://helpx.adobe.com/acrobat/using/applying-actions-scripts-pdfs.html

  3. https://www.t10.org/ftp/js_api_reference.pdf

  4. https://www.nutrient.io/blog/using-javascript-in-pdf-form-fields/

  5. https://github.com/cornerpirate/JS2PDFInjector?tab=readme-ov-file

Интересно, можно ли сделать терминал? Наверное нет, т.к. скорее всего запрещено работать с сетью или с любыми другими ресурсами вне самого PDF. Но наверное можно сделать простой GUI фремворк и реализовать на нем например TODO лист :)

Чекбоксы уже поддерживаются, жаль только добавлять их через формы это костыли.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Другие новости