前言“FSRC经验分享”系列文章,旨在分享焦点科技信息安全部工作过程中的经验总结,包括但不限于漏洞分析、运营技巧、sdl推行、等保合规、自研工具等等。
欢迎各位安全从业者持续关注~
0x01EL简介
表达式语言(Expression Language 以下简称EL)是以JSTL(JavaServer Pages Standard Tag Library,JSP标准标签库)的一部分出现的,原本被叫做SPEL(Simplest Possible Expression Language,简单的表达式语言),后来被称作EL(Expression Language,表达式语言)。它是一种脚本语言,允许通过JSP访问Java组件(JavaBeans)。自JSP 2.0以来,表达式语言已经被内置到JSP标签中,用于从JSP中分离Java代码,并允许(比用Java代码)更方便访问Java组件。
Java中有多种表达式语言,比如:JSTL_EL为JSP自带的表达式,适用于所有的Java Web,SpEL为Spring框架的EL表达式,只在Spring框架中可用 ,还有Struts2的OGNL。
JSTL_EL,为传统EL,通常简称为EL,这种表达式是JSP语言自带的表达式,也就是说所有的Java Web服务都必然会支持这种表达式。但是由于各家对其实现的不同,也导致某些漏洞可以在一些Java Web服务中成功利用,而在有的服务中则是无法利用。典型漏洞如CVE-2011-2730
SpEL:JAVA Spring框架特有表达式,是一个支持查询和操作运行时对象导航图功能的强大的表达式语言. 它的语法类似于传统EL,但提供额外的功能,最出色的就是