- PVSM.RU - https://www.pvsm.ru -
Вкратце: Rails 2,3 и 4 приложения подвержены выполнению произвольного кода(RCE) без исключения. Шел, чтение и очистка базы данных, все что душе угодно.
Чуть подробнее. Не так давно многие обратили внимание на то что рельсы по умолчанию принимают не только x-www-form-urlencoded параметры, но и XML/JSON. А XML внутри себя принимает также такой тип данных как YAML:
<foo type="yaml">
...
</foo>
А YAML в свою очередь очень гибкий формат и позволяет создавать инстансы произвольных классов с последующей задачей через [] метод произвольных параметров — например.
А в свою очередь в огромной классовой архитектуре Rails и сопутствующих джемов можно найти такой класс чтобы во время его инициализации(initialize) или назначения аттрибутов через [] был выполнен произвольный код из этого самого YAML текста.
Умельцы нашли несколько способов — например через класс ActionDispatch::Routing::RouteSet::NamedRouteCollection [1]
Статья с описанием на официальном блоге и рекомендации по обновлению. [2]
P.S. эксплоит в сети вот уже часов 12. эпично
Автор: Chikey
Источник [3]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/ruby/24464
Ссылки в тексте:
[1] через класс ActionDispatch::Routing::RouteSet::NamedRouteCollection: http://ronin-ruby.github.com/blog/2013/01/09/rails-pocs.html
[2] Статья с описанием на официальном блоге и рекомендации по обновлению.: http://weblog.rubyonrails.org/2013/1/8/Rails-3-2-11-3-1-10-3-0-19-and-2-3-15-have-been-released/
[3] Источник: http://habrahabr.ru/post/165343/
Нажмите здесь для печати.