Анализ уязвимости CVE-2017-5638 (которой взломали Equifax)
От: wildwind Россия  
Дата: 22.09.17 08:27
Оценка: 39 (6)
https://blog.gdssecurity.com/labs/2017/3/27/an-analysis-of-cve-2017-5638.html

TL;DR

Тип уязвимости — server side template injection, точка входа — обработчик загрузки файлов в Apache Struts. При некорректном заголовке Content-Type вызывается исключение, при его обработке логируется среди прочего и содержимое заголовка как отдельное сообщение. На этапе локализации сообщения никакого шаблона для этого случая не предусмотрено, поэтому в самом-самом default методе текст сообщения (то есть содержимое заголовка, сформированное атакующим) используется как шаблон. Вызывается метод подстановки переменных, где и выполняется код.

Дело усугубляется тем, что при локализации сообщений используется тот же язык шаблонов, что и везде в Struts, а он весьма богатый. Там предусмотрены ограничения на доступ к классам в виде черного списка. Но атакующий красиво их обходит, добираясь до этого списка и очищая его. Ну а дальше уже добирается до шелла.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.