URL: https://www.opennet.dev/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 128082
[ Назад ]

Исходное сообщение
"Атака на Node.js через манипуляции с прототипами объектов JavaScript"

Отправлено opennews , 27-Июл-22 16:21 
Исследователи Центра Гельмгольца по информационной безопасности (CISPA) и Королевского технологического института (Швеция) проанализировали применимость техники засорения прототипа объектов  JavaScript ("prototype pollution") для создания атак на платформу  Node.js и популярные приложения на её основе, приводящих к выполнению кода...

Подробнее: https://www.opennet.dev/opennews/art.shtml?num=57562


Содержание

Сообщения в этом обсуждении
"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено истина в последней инстанции , 27-Июл-22 16:21 
Это не тот который тут вчера панельку создал для kde на этом г?

Обезьянки такие обезьянки.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено ананоша , 27-Июл-22 16:25 
У него на божественном typescript, а тут дырявый javascript

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 16:28 
Аксиома Эскобара..

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 18:53 
ШОК! Если атакующий может выполнить код, чтобы изменить прототип, то он может не только изменить прототип, но и выполнить код!

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 11:01 
Говорят, в архитектуре фон Неймана код ничем не отличается от данных (передаваемых через http-запрос).

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 20:03 
Говорят, лекции по CS прогуливать не надо... хотя сельпошному кодеру и так сойдет.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 20:19 
Скрипт на (ba)sh, lua, js, sql, postscript, и т.д., в том числе на Тьюринг-полном css - это код или данные?

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 16:34 
А на тайпскрипте что-то такое не прокатит?

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено th3m3 , 27-Июл-22 16:36 
>божественном typescript

Вот ещё почему typesciprt - зло. Человек начинает думать, что его код безопасен, а это может быть совсем не так.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено истина в последней инстанции , 27-Июл-22 18:27 
> Человек начинает думать, что его код безопасен, а это может быть совсем не так.

Это не только в typescript, ещё и rust туда-же


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 29-Июл-22 11:22 
> Это не только в typescript, ещё и rust туда-же

Только бездарные дилетанты и дешевые бросуны сравнивают TS и Rust.

Если понимать что делаешь, то да, Rust гораздо безопаснее, потому что экономит кучу времени на рутинные повторяющиеся проверки.

А если не понимать, то конечно, ни Rust, и ничто вообще ничего не гарантирует

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

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


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено burjui , 31-Июл-22 14:07 
А ещё в JavaScript и C++, и вообще в любом ЯП. И?

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено burjui , 31-Июл-22 14:06 
А, может, это человек, который не читает документацию и безопасность спихивает на язык - зло?

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 17:50 
Выше вы прочитали переписку людей без чувства юмора.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 22:03 
Или пример закона По.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 22:52 
Это вряд ли, не тот сайт. Ты тут напиши, что консоль DOS лучше консоли Linux потому что экономно расходует память - увидишь как радостно поведутся на троллинг в ветке на сотню комментариев.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено мевин , 28-Июл-22 08:53 
Всегда радует как люди без фантазии изящно называют свой неприкрытый дебилизм "троллинг". Маркетологи хорошо постарались, втянув 80% смотреть интернет-рекламу.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 09:25 
Не, это не только отсутствие ч. ю., но еще и чрезмерная серьезность. Ядреная комбинация.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Владимир , 27-Июл-22 19:22 
Знаменитая Фракталова дырень ...

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 16:54 
То ли дело remote дырень в ядре линукса на православной сишечке! Там вообще root получают, но так, по-доброму!
И да, разумеется это другое))

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 16:59 
ну перепиши linux kernel на JS, посмотрим какие там будут уязвимости. И переписать надо так, чтоб запускался на голом железе и можно было в нем запустить эту твою нодужыэс

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 17:22 
Ну перепиши web приложение на C, посмотрим какие там будут уязвимости и сколько 😂😂😂

Слабо? Хейтеры JavaScript только языком чесать умеют?

Где все ваши тысячи классных приложений на С и С++?


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 17:28 
Как где? У тебя, баклан. Ты бы без сишечки сюда на опеннетик вообще пискнуть не смог. А вот JS здесь таки наглухо опционален, у меня он тут зарублен вообще совсем.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 18:10 
Я спросил где твой софт на нём?

То, что умные американские дяди написали и ядро, и браузер, и ОС когда и в помине JS не было, это я в курсе.

Но при чём тут ты, хейтерок?


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено YetAnotherOnanym , 27-Июл-22 18:39 
Мой - у меня и организаций, в которых я работал. Немножечко на гитхабе - то, что я счёл полезным для людей и нашёл время причесать. Ссылку не дам, извини, я там под своим реальным именем.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 19:57 
> Я спросил где твой софт на нём?

Например в микроконтроллерах. А если по мелочи то я патчей довольно много куда закидывал так то.

> Но при чём тут ты, хейтерок?

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


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено истина в последней инстанции , 27-Июл-22 18:30 
Не поверишь. Вагон. И качество куда получше.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 18:40 
> Где все ваши тысячи классных приложений на С и С++?

они все в закрытой репе у Intel в виде патчей для yocto linux.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено мимо , 27-Июл-22 19:03 
>Ну перепиши web приложение на C
>Где все ваши тысячи классных приложений на С и С++?

Норм такая подмена понятия. Сначала вебприложения, потом просто приложения.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Без аргументов , 27-Июл-22 19:23 
буквально пару мес назад вебманки нахимичили в сайте ПР так, что мне показывались разные чужие посылки при каждом обновлении страницы.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Без аргументов , 27-Июл-22 19:24 
а когда глянул в json-чики, там и имейлы других пользователей спалили с другими их данными

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено qwe , 27-Июл-22 20:11 
Где-то с год назад на довольно популярном в России сайте изучения английского языка также наткнулся на то, что в API обсуждений заданий возвращалось гораздо больше информации, чем это нужно было для отображения участников дискуссии. Причем не рандомных пользователей, а всех пользователей дискуссии, включая модераторов. Просто рай для конкурентов и спамеров. Сообщил, исправили по-тихому, довольно быстро. Потом решил посмотреть более внимательно на сей сайт и уже через полчаса окончательно уверился, что я правильно делаю, стараясь не указывать реальных данных на сайтах, где это возможно. Больше не смотрел и сообщать не стал. С SQL инъекциями современные кодеры хоть как-то справились используя фреймворки разного качества, то дырявое API, по моим наблюдениям - у каждого второго. Причем не только на чтение но и на запись.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 20:01 
А я вообще уронил вон тому вебмакакеру его чудо-код первым же реквестом. Пора йогой заняться - двойного фэйспалма уже недостаточно!!!

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено мевин , 28-Июл-22 08:58 
Накинулись на мальчонку лол.
Малыш, ты будешь немного удивлен, узнав чуть получше о жизненном цикле своих прекрасных дам файликов.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 18:59 
>ну перепиши linux kernel на JS, посмотрим, кто этим тормознутым жрущим говном пользоваться сможет

Пофиксил.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним II Великолепный , 27-Июл-22 17:03 
А что за дырень? Посвяти на нее,  может ссылка есть?

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 17:05 
Тут нет никакой дырени, если приложение разрешает менять свой код то это проблема конкретного приложения, просто ребята из Центра Гельмгольца набивают себе индекс цитирования для грантов или ещё для чего.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено истина в последней инстанции , 27-Июл-22 18:28 
Толи дело раст. Ни одного проекта законченного так и не появилось. Мертвячина.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Анонн , 27-Июл-22 19:27 
Один аноним при упоминании Си не смог не стригерится и не написать про раст.
И у него отвалились жoпа :(

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено истина в последней инстанции , 27-Июл-22 21:30 
Другое дело растоман с враждённым растоманским ДЦП. И без жопы (перманентное недержание) и без мозгов (вытекли до того как запустился)

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено НяшМяш , 29-Июл-22 13:37 
> Другое дело растоман с враждённым растоманским ДЦП.

Всем бы дцпшникам такого дцп. Всяко лучше жсной микроцефалии.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 10:40 
Параноики, что сказать.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 17:44 
Казалось бы какое дело до rust, анонимным opennet экспертам, они ни на Раст не пишут, ни на js, ни на java, ни на Си, но в каждой новости наваливают целые кучи своего ценного мнения

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 10:49 
Что ещё ждать от так называемых программистов.
Сколько бы на опеннетные эксперты не объясняли им, что они просто "Обезьянки", они все равно продолжают писать свои так называемые программы, на так называемых языках программирования

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 16:28 
Прекратите кибербулить мой любым JavaScript!!!

// b.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноникалипсатор7 , 27-Июл-22 16:39 
дни жабыскрипта сочтены,  такой удар еще не переживал ни один язык погроммирования

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 19:28 
Пиши сразу на webassembly. Или не асилил?

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 08:23 
Его и не надо осиливать, если надо выдавать результат (относительно) быстро при худо-бедно приемлемом качестве. Ты же на ассемблере большой и сложный проект писать не будешь (а если и будешь то ты или фрик или хобби у тебя такое). Так и тут, выбирай свой любимый язычок, в котором есть поддержка компиляции в вебассембли и соответствующий фреймворк - "и вперьод!". Ну например возьмешь какой-нибудь Blazor от мелкомягких или раст :) с одним из пары-тройки растовских веб-фреймворков.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено мевин , 28-Июл-22 09:01 
Ты предложил язык от мелко мягких и фрейм от мразософт. А ты хитрый:)
Мелкосовт проиграл войну браузеров и решил зайти в веб с черного хода.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 09:56 
я же сразу предложил в ассортименте (опережая твою следующую ремарку - не г.вна!), сказал же:  "...или раст :) с одним из пары-тройки растовских веб-фреймворков". Выбирай на вкус или ищи/пиши веб-фреймворк для своего любимого язычка с "канпелятором в LLVM" чтобы в вебассембли было проще перегонять.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноникалипсатор5 , 27-Июл-22 16:31 
ужас,  как все запущено,  надо срочно переписывать ноду на раст

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Quarck , 27-Июл-22 16:39 
Так уже. Называется deno.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 17:30 
Это какое-то DeNo! Надо было и интерпретировать синтакс хруста :). Кстати до чего-то наподобие даже кто-то вроде додумался.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Ф1 , 27-Июл-22 16:40 
уже давно переписали https://deno.land/

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноникалипсатор7 , 27-Июл-22 16:43 
тогда надо переписать еще раз,  дважды

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Bun.sh , 27-Июл-22 21:10 
Так уже https://bun.sh

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено НяшМяш , 27-Июл-22 16:50 
Там ещё V8 на мерзких крестах, его теперь надо переписать /s

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 09:15 
Так уже https://bun.sh/

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Вы забыли заполнить поле Name , 28-Июл-22 11:32 
> extending JavaScriptCore, the engine

Эмм. JavaScriptCore на чем написан, Карл?


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Анна Нист , 27-Июл-22 16:34 
Говорят за этим языком все операционные системы будущего.
Ах.. да, забыл.. уже! 99,9% пользователей пк используют браузеры

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 16:35 
Все операционные системы ботнетов будущего 8)

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено pork chop suey , 27-Июл-22 16:39 
если всё будет ботнет, то смысл тогда в ботнете как таковом?

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Ботнет , 27-Июл-22 17:30 
После узнаете.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 08:27 
Майнить крипту на каждом утюге планеты. Больше узлов - больше сатошиков.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 17:33 
Анна Нист : "забыл" или "забыла"?

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Sw00p aka Jerom , 27-Июл-22 21:39 
какая разница и те и те дрочат:)

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено мевин , 28-Июл-22 09:02 
> говорят

Врут безбожно


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 20:33 
> Врут безбожно

Оскорбление чувств верующих в отсутствие (единственного) бога.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено olegz , 27-Июл-22 16:53 
это ведь нельзя выполнить с клиента, правильно? в частности require ("bytes");

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Бывалый смузихлёб , 27-Июл-22 18:20 
Выполнить то много что можно но суть в выполнении именно на стороне сервака

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено olegz , 28-Июл-22 16:17 
если только на сервере, то не вижу большой проблемы. Просто надо следить за зависимостями проекта

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 31-Июл-22 03:34 
> Просто надо следить за зависимостями проекта

Ты же сейчас пошутил? В среднем проекте от 1000 - 4000 зависимостей.
Ты или создаешь свою вселенную с нуля или просто нет смысла использовать NodeJS.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 16:55 
Да ладно, говно можно сотворить на любом языке. В сях есть #define true false, в расте процедурные макросы вообще во время компиляции могут в сеть сходить и биткойны помайнить. Всегда есть к чему докапаться.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 17:34 
Ух, да, только ты в рантайм #define true false не передашь при всем желании, ибо нет там никакого препроцессора уже. А вот яваскрипт в этом плане позволяет неиллюзорно поприкалываться.

Я так понимаю некоторые штуки типа umatrix на этом по сути половину своей работы строят, делая невероятный оверлоад большей части браузерных кишок и .. ... .. вот враждебная вебня уже получает вообще совсем не то что оно там себе думало :). И хотя в данном случае это даже как бы фича, но так и в обратную сторону по идее можно, для создания хреновой кучи нежданчиков воооон тому коду с менее мирными целями. О чем вроде бы сабж и есть.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Бывалый смузихлёб , 27-Июл-22 18:25 
А теперь шаг 2 ( вообще-то с него и стоило начать ) - попробуй добиться исполнения нужного кода на стороне сервера
Ладно ещё кто-то в какой-то пакет «паленый» что-то понатолкал и кто-то что-то подхватил при его запуске

А вот как добиться исполнения этого на совершенно конкретном серваке, вот тут и начинаются вопросы
Ведь если уже можешь исполнить код на стороне сервера( чего и требует «уязвимость» ), то в принципе многое сильно проще. А если нет - то это не поможет


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено qwe , 27-Июл-22 20:43 
Речь как я понял речь тут о том, что при определенной комбинации кода (пакетов) на сервере, клиент может менять код на сервере посредством передачи специально оформленных входных данных. Причем именно не поведение кода, а сам код. Конечно, такое можно провернуть и на других платформах (привет глобальным переменным PHP и функциям типа eval), но JS тут всех переплюнул: он дает возможность поменять поведение всех экземпляров уязвимого класса, а не только того, которому "повезло" обработать данные с инъекцией.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 05:07 
Ровно точно так же, как в комплируемых языках, если код одного из модулей может посредством удаленных команд читать и писать из указанных удаленно адресов памяти, можно, при некоторой осторожности, точно так же крутить и вертеть всем приложением и делать все что угодно.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено qwe , 28-Июл-22 13:37 
Что, вот прям так, через манипуляцию свойством объекта можно изменить код всего класса, причем вполне легитимными для языка методами? Переполнения буфера, стека и т.д. я знаю, но это немного другое, скорее управление неопределенным поведением программы, а не "все нормально, так и должно быть". По мне так когда я пишу такое:
let a = {}; a = c;
при этом не слежу ни за 'b' ни за 'c', и получаю уязвимость - это нормально, это стандартный механизм языка, сам дурак. А вот когда результат моего головотяпства выходит за пределы *локальной* переменной 'a' и это считается нормальным, стандартным механизмом языка, то сие начинает немного напрягать: как так, теперь нужно следить не только за глобальными и локальными переменными в коде но и за всем ядром языка. Но зато гибко и порой удобно. Да и вообще, чего переживать, ведь весь код мой и все это не выходит за пределы браузера пользователя... Подождите, что? Это теперь на серверах? Какой еще NPM?!

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено qwe , 28-Июл-22 13:39 
Блин, там весь мой чудо-код сломался. Сорри.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 14:49 
Точно так же, как можно в любом одном месте сделать

int offset = get_offset_from_inet();
int val = get_val_from_inet();
my_arr[offset] = val;

и поиметь проблем во всем приложении. Чем отсутвие валидации входных в одном языке, отличаются от другого? А уж тем более, если будет саботаж в коде самого приложения.

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


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 20:11 
> А теперь шаг 2 ( вообще-то с него и стоило начать ) - попробуй добиться
> исполнения нужного кода на стороне сервера

Оно как бы да, но вон там все же забавный фокус придумали. Сколько еще таких нежданчиков в JS зарыто - вопрос интересный.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 18:30 
> враждебная вебня

Так не ходи во враждебную вебню. Ходи в гофер.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 20:16 
> Так не ходи во враждебную вебню. Ходи в гофер.

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

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


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено мевин , 28-Июл-22 09:06 
> так понимаю

Неверно понимаешь. Матрикс блочит


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним II Великолепный , 27-Июл-22 16:59 
Браузерное поделие пустили в сервера, что теперь делать? как жить? как спать? как спать теперь?

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 17:01 
> Для успешного совершения атаки требуется, чтобы в приложении поступающие извне данные могли использоваться для создания нового свойства в корневом прототипе объекта

Очередной цирк безопасности.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 17:03 
Prototype-based programming, кушайте :3

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 17:07 
Вообще не в тему.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 17:32 
Они последние 10 лет под камнем пролежали?
Атака на прототип это ж классика…

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 17:33 
https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=prototype+p...

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 18:11 
Гранты сами себя не выдадут, надо статьи клепать и постить на arxiv.org

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 18:31 
А чего сам не написал статью? Получил бы грант, пожил бы с размахом.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 18:35 
Эммм. Доброе утро.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 18:56 
>Если в коде приложения встречается присвоение "obj[a] = value"

Уж сколько раз твердили миру: new Map().


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено истина в последней инстанции , 27-Июл-22 21:32 
> Уж сколько раз твердили миру: new std::map().

поправил, не благодари.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Вы забыли заполнить поле Name , 28-Июл-22 14:09 
>> Уж сколько раз твердили миру: new std::map().
> поправил, не благодари.

Зачем тебе new с std::map? Он сам внутри память выделяет, а его обычно выделяют на стеке (как и std::vector и прочие контейнеры).


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 07:12 
Object.create(null) хватит всем.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 15:56 
Только json.parse возвращает объекты с  __proto__

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Вы забыли заполнить поле Name , 28-Июл-22 14:12 
>>Если в коде приложения встречается присвоение "obj[a] = value"
> Уж сколько раз твердили миру: new Map().

Просто JSON parse возвращает объект, а не Map. Плюс вложенные ключи не сохранить, optional chaining нельзя использовать. То есть да, Map правильно, но также поощрают использовать обычные объекты.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 27-Июл-22 21:39 
Победили Flash

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 00:00 
Придется __proto__ фильтровать во всем что пришло от пользователя.
Уязвимость уровня php phar

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Вы забыли заполнить поле Name , 28-Июл-22 11:35 
Желтый заголовок какой-то. Причем тут сам Node.js? То есть есть модули, которые не проверяют ввод пользователя и если их использовать то можно получить уязвимость? Ок. Вообще сама уязвимость стара как мир. Еще на CTF 18 года ее юзал.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 14:26 
Проблема не в отсутствии проверки данных от пользователя. Не должен разраб знать и фильтровать все эти служебные слова с подчёркиваниями __ __

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Вы забыли заполнить поле Name , 28-Июл-22 12:06 
Насколько я помню свойство __proto__ вообще deprecated было https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe... Но его все же в стандарт добавили, чтобы не ломать сильно интернет. Вообщем как обычно: сделали глупость, глупость заиспользовали макаки, глупость добавили в стандарт (facepalm)

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 16:32 
Чего ж ты не влез в комитет и не показал всем, как надо?

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Вы забыли заполнить поле Name , 29-Июл-22 09:33 
> Чего ж ты не влез в комитет и не показал всем, как
> надо?

Мне не интересен js. А надо ввести версионирование js по аналогии со стандартами в с++. В старых версиях убрать все упячки.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено НяшМяш , 29-Июл-22 13:33 
> Мне не интересен js. А надо ввести версионирование js по аналогии со
> стандартами в с++. В старых версиях убрать все упячки.

Так хотели сделать в ECMAScript 4 ещё сто лет назад - но хомяки пролоббировали оставить все упячки.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 16:27 
С каких это пор "блоки кода" стали называться "гаджетами"?
Хоть бы дали точное определение, что имели в виду, а то гугол выдаёт всякую хрень

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 28-Июл-22 20:19 
> Так не ходи во враждебную вебню. Ходи в гофер.

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


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 29-Июл-22 20:55 
Это такие блоки кода, которые можно использовать в своих целях как отдельный элемент.
Слово гаджет в русском языке засижено маркетологами и означает то же, что смартфон или ещё какая-нибудь техника, но в английском это более общее понятие. В словарях все есть.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено fuggy , 28-Июл-22 17:53 
Прототипное наследование хорошо говорили они. Только забыли что все объекты наследуются от object клоаки. И то есть получается, что через класс Dog я могу поменять класс Cat — отлично.

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Вы забыли заполнить поле Name , 29-Июл-22 10:57 
> Прототипное наследование хорошо говорили они. Только забыли что все объекты наследуются
> от object клоаки. И то есть получается, что через класс Dog
> я могу поменять класс Cat — отлично.

Прототипное наследование тут не при чем. В питоне точно также можно этого добиться.


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Че769 , 01-Авг-22 09:06 
Сперва добейся

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Вы забыли заполнить поле Name , 01-Авг-22 17:13 
> Сперва добейся

class A:    
    x = 1    
    
class B(A): pass    
    
class C(A):    
    def __init__(self):    
        self.__class__.__bases__[0].x = 2    
                                                                                                    
b = B()    
assert b.x == 1    
c = C()    
assert b.x == 2


"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено Аноним , 03-Авг-22 02:06 
лол, то, что ты можешь сделать теж же сях на уровне доступа к памяти ни в какое сравнение не идет с этим

"Атака на Node.js через манипуляции с прототипами объектов Ja..."
Отправлено мяя , 02-Авг-22 23:49 
https://github.com/nodejs/node/issues/31951