EL - Expression Language

WhiteIntel 是一个由暗网支持的搜索引擎,提供免费功能,用于检查公司或其客户是否受到窃取恶意软件的侵害。
WhiteIntel的主要目标是打击由窃取信息的恶意软件导致的账户劫持和勒索软件攻击。
您可以访问他们的网站并免费尝试他们的引擎:
基本信息
表达式语言(EL)在JavaEE中是不可或缺的,用于连接表示层(例如网页)和应用程序逻辑(例如托管的bean),实现它们之间的交互。它主要用于:
JavaServer Faces(JSF):用于将UI组件绑定到后端数据/操作。
JavaServer Pages(JSP):用于在JSP页面中访问和操作数据。
Java EE的上下文和依赖注入(CDI):用于促进Web层与托管bean的交互。
使用环境:
Spring框架:在各种模块中应用,如安全性和数据。
通用用途:开发人员通过SpEL API在基于JVM的语言(如Java、Kotlin和Scala)中使用。
EL存在于JavaEE技术、独立环境中,并通过.jsp或.jsf文件扩展名、堆栈错误以及标题中的“Servlet”等术语来识别。然而,其功能和对某些字符的使用可能取决于版本。
基本示例
(您可以在https://pentest-tools.com/blog/exploiting-ognl-injection-in-apache-struts/找到有关EL的另一个有趣教程)
从Maven仓库下载以下jar文件:
commons-lang3-3.9.jarspring-core-5.2.1.RELEASE.jarcommons-logging-1.2.jarspring-expression-5.2.1.RELEASE.jar
并创建以下Main.java文件:
接下来编译代码(如果您没有安装javac,请安装sudo apt install default-jdk):
使用以下命令执行应用程序:
注意在前面的示例中术语{5*5}被评估。
基于CVE的教程
在这篇文章中查看:https://xvnpw.medium.com/hacking-spel-part-1-d2ff2825f62a
负载
基本操作
检测
Burp检测
J2EE检测
等待 10 秒
远程文件包含
目录列表
RCE
RCE的基本解释
RCE Linux
RCE Windows (未经测试)
更多的远程命令执行(RCE)
检查环境
applicationScope- 全局应用程序变量requestScope- 请求变量initParam- 应用程序初始化变量sessionScope- 会话变量param.X- 参数值,其中 X 是 http 参数的名称
您需要将这些变量转换为字符串,如下所示:
授权绕过示例
应用程序还可以使用自定义变量,例如:
WAF Bypass
查看https://h1pmnh.github.io/post/writeup_spring_el_waf_bypass/
参考资料

WhiteIntel 是一个由暗网推动的搜索引擎,提供免费功能,用于检查公司或其客户是否受到窃取恶意软件的威胁。
WhiteIntel的主要目标是打击由信息窃取恶意软件导致的账户劫持和勒索软件攻击。
您可以访问他们的网站并免费尝试他们的引擎:
最后更新于