Prototype pollution — практика поиска и эксплуатации
Никита Ступин из Huawei написал статью про атаку "Prototype pollution" — "JavaScript prototype pollution: практика поиска и эксплуатации".
Prototype pollution — это атака, с помощью которой изменяют прототип базовых объектов (Object.prototype, Function.prototype, Array.prototype) для модификации хода выполнения программы. Например, если код обращается к свойству window.foo и выполняет его содержимое с помощью eval, то в некоторых ситуациях можно добиться выполнения произвольного кода, переписав в прототипе объекта свойство foo (Object.prototype.foo = 'alert(1)'). Чаще всего на клиенте prototype pollution используется для реализации XSS с помощью изменения GET-параметров.
В статье очень детально разбирается механизм работы этой атаки на клиенте и сервере. Есть пример поиска и эксплуатации prototype pollution на практике и советы по защите.
Большая и интересная статья. Рекомендую почитать.