EL - Expression Language

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS红队专家)

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”等术语来识别。然而,其功能和对某些字符的使用可能取决于版本。

根据EL版本的不同,某些功能可能会开启关闭,通常某些字符可能会被禁止使用。

基本示例

(您可以在https://pentest-tools.com/blog/exploiting-ognl-injection-in-apache-struts/找到有关EL的另一个有趣教程)

Maven仓库下载以下jar文件:

  • commons-lang3-3.9.jar

  • spring-core-5.2.1.RELEASE.jar

  • commons-logging-1.2.jar

  • spring-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的主要目标是打击由信息窃取恶意软件导致的账户劫持和勒索软件攻击。

您可以访问他们的网站并免费尝试他们的引擎:

从零开始学习AWS黑客技术,成为专家 htARTE(HackTricks AWS Red Team Expert)
  • 您在网络安全公司工作吗? 想要在HackTricks中看到您的公司广告? 或者想要访问PEASS的最新版本或下载PDF格式的HackTricks? 请查看订阅计划!

  • 发现PEASS家族,我们的独家NFTs收藏品

  • 加入💬 Discord群组](https://discord.gg/hRep4RUj7f) 或电报群组或在Twitter上关注我🐦@carlospolopm

  • 通过向hacktricks repohacktricks-cloud repo提交PR来分享您的黑客技巧。

最后更新于