Опасности использования open-uri
OpenURI в руби это стандартная библиотека сильно упрощающая работу с URL так как она объеденяет в себе Net:HTTP/HTTPS/FTP и представляет из себя всего лишь метод open. Насколько я знаю это самый популярный способ для скачивания файла, GET запроса или чтения данных.
Но на деле require "open-uri" патчит Kernel.open и вызывает разный код для разных аргументов, что может привести к удаленному выполнению кода или чтению любого файла на сервере!
open(params[:url]) это выполнение кода для url=|ls Все что начинается с | рассматривается как системный вызов.
open(params[:url]) if params[:url] =~ /^http:// не лучше для url=|touch n; http://url.com (сломанные регулярки могут привести к RCE, используйте Az).
Читать дальше →
Но на деле require "open-uri" патчит Kernel.open и вызывает разный код для разных аргументов, что может привести к удаленному выполнению кода или чтению любого файла на сервере!
open(params[:url]) это выполнение кода для url=|ls Все что начинается с | рассматривается как системный вызов.
open(params[:url]) if params[:url] =~ /^http:// не лучше для url=|touch n; http://url.com (сломанные регулярки могут привести к RCE, используйте Az).
Читать дальше →
Источник: Хабрахабр
Похожие новости
- [Перевод] «Призраки в коммитах 2»: пылесосим историю Git в поиске утекших секретов
- Как мы строим real-time data-пайплайны для анонимных крипто-свапалок: опыт на примере risetocrypto
- [Перевод] Ай! Не туда! Как злоупотреблять симлинками и повышать привилегии (LPE-шиться) в Windows
- Шифрование скриптов
- Vaultwarden: как я поднял свой менеджер паролей и перестал беспокоиться?
- BGGP3: Хороший тамада и конкурсы интересные
- IP-телефония в России: запрет или новые правила? Разбираемся
- Что остаётся после нас в онлайне — и как с этим быть
- Android. Кража данных через клавиатуру: миф или реальность?
- Spark_news: Продолжается рост закупок госкомпаний у самозанятых