Что такое SpEL и с чем его едят
Любой пентестер заинтересован в уязвимостях, которые способны привести к исполнению кода. Наиболее действенным способом получить RCE является использование SpEL-выражений.
SpEL – язык выражений, подходящий для работы в Spring Framework и имеющий вид API-интерфейса, которое можно интегрировать в любые приложения или фреймворки. Чтобы назначить права в Spring Security, необходимо использовать SpEL-выражения.
Об основах Spring Framework и SpEL
Итак, давайте разберемся. Управление компонентами осуществляется посредством работы Spring Container. Контейнер использует Внедрение Зависимостей, которые называются бинами. Из бина можно получить метаданные конфигурации. Делается это несколькими методами:
XML;
Аннотации Java;
Java-код.
Что умеет SpEL?
В документации мы найдем следующий функционал:
Literal expressions;
Boolean and relational operators
Regular expressions
Class expressions
Accessing properties, arrays, lists, maps
Method invocation
Relational operators
Assignment
Calling constructors
Bean references
Array construction
Inline lists
Inline maps
Ternary operator
Variables
User defined functions
Collection projection
Collection selection
Templated expressions
Именно поэтому для работы в Spring логичнее использовать полнофункциональный StandardEcalutionContext, чем SimpleEvaluationContext, который является урезанным и имеет скромные возможности.
Другие утилиты для анализа кода и поиска уязвимости
Jprofiler – отдельное приложение, едва ли не самое лучшее с точки зрения безопасности. Утилита платная, однако разработчик предлагает воспользоваться бесплатным периодом в 10 дней.
Coverity – для анализа использует свои сервера, хороший вариант для тех, кто не боится выложить свой код.
OWASP Dependency Check – удобный плагин, подходящий для работы с Maven и Ant.
В заключение
Многих интересует вопрос, где же можно найти SpEL помимо Spring. Если верить CVE, то практически нигде. От инъекции нас отделает возможность записать нужные данные в таблицу. Поэтому никогда не забывайте ознакомиться с возможностями фич языка при обработке «непользовательского» ввода.
Читать статью на:
Для просмотра ссылки необходимо нажать
Вход или Регистрация