java 代码执行el,专属于java的漏洞——EL表达式注入

本文介绍了Java中的EL(表达式语言)及其在JSP和Spring框架中的应用,详细阐述了EL的主要功能,如获取数据、执行运算、调用Java方法等。同时,文章列举了EL表达式注入的常见PoC,包括文件读取和获取shell,并提供了漏洞修复建议,强调了避免使用外部输入作为EL表达式内容的重要性。
摘要由CSDN通过智能技术生成

前言“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,但提供额外的功能,最出色的就是

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值