Бесплатно что такое SpEL и с чем его едят

Everest_RR

Местный
Private Club
Регистрация
8/10/18
Сообщения
232
Репутация
20
Реакции
255
RUB
0
SPEL_logo_2x.png


Что такое 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, то практически нигде. От инъекции нас отделает возможность записать нужные данные в таблицу. Поэтому никогда не забывайте ознакомиться с возможностями фич языка при обработке «непользовательского» ввода.
Читать статью на:
 
Сверху Снизу