打印 上一主题 下一主题

表达式语言注入(EL Injection)——Java应用的暗门

[复制链接]
跳转到指定楼层
楼主
发表于 昨天 23:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
查看 : 2|回复 : 0
表达式语言注入(EL Injection)——Java应用的暗门
摘要:表达式语言(Expression Language, EL)是Java EE中的一种强大功能,允许在JSP、JSF等视图层动态计算表达式。当应用程序将用户输入直接放入EL求值环境时,黑客可注入恶意EL表达式,调用Java类方法执行任意代码。本文讲解EL注入的利用方式(如访问Runtime类)及防御措施,包括禁用EL、输入过滤和白名单。
关键词:黑客网站攻击;EL注入;渗透测试;Java安全;表达式注入;RCE

一、引言
许多Java遗留系统仍使用JSP页面,并通过 ${param.x} 等方式输出数据。如果系统存在一个“动态表达式求值”功能(如规则引擎、模板配置),黑客就能注入${pageContext.request.getSession().setAttribute(...)}等恶意EL表达式,造成会话操纵甚至命令执行。
二、EL注入原理2.1 表达式基础
EL语法为 ${expression} 或 #{expression}。其中可以调用静态方法、构造对象等。
2.2 危险场景
例如,一个允许用户配置欢迎语的功能:
[size=12.573px]java



String message = request.getParameter("msg");ExpressionFactory factory = new ExpressionFactoryImpl();ELContext context = new ELContextImpl();ValueExpression ve = factory.createValueExpression(context, "#{" + msg + "}", String.class);String output = (String) ve.getValue(context);

输入 Runtime.getRuntime().exec("calc") 将导致命令执行。
2.3 常见的EL载荷
  • 执行命令:${Runtime.getRuntime().exec("id")}
  • 读取文件:${new java.io.BufferedReader(new java.io.FileReader('/etc/passwd')).readLine()}
  • 反弹shell:结合Base64编码。

三、渗透测试中的利用
攻击者首先寻找所有可能被EL解析的输入点(请求参数、JSON键值、数据库存储的配置),提交 ${1+1} 观察是否输出 2。确认后可使用更复杂的链式调用来完成黑客入侵,例如通过 Class.forName 加载恶意类。
四、防御措施
  • 禁用EL求值:如果业务不需要,不要使用 createValueExpression。
  • 严格过滤:删除 ${、#{、Runtime、getRuntime、exec 等子串,但注意绕过技巧。
  • 沙箱策略:使用安全管理器限制表达式可访问的类。
  • 升级框架:高版本JSF默认限制更强。

五、总结
EL注入在Java应用中危害极大。开发者应当避免动态编译用户输入的表达式,如必须使用,则采用白名单表达式语法或安全子集。


黑客接单网,一个诚信可靠的黑客在线接单平台网站 - 论坛版权欢迎各位客户访问黑客接单网
黑客接单网,一个诚信可靠的黑客在线接单平台网站是一个专业的黑客在线接单服务平台
黑客接单网,一个诚信可靠的黑客在线接单平台网站聚集多位顶级黑客大牛于此
专业服务于网站攻击,网站入侵,软件开发,软件破解,聊天记录截取,手机定位,删帖,改贴,开房记录查询等各种网络服务
如果您有相关业务需求,请联系我们在线客服咨询,获取解决方案
黑客接单网,一个诚信可靠的黑客在线接单平台网站全体工作人员恭候您下达任务,我们誓必不负重托。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

HeiKeJieDan(黑客接单网)黑客接单网,是一个国际顶级黑客在线接单网站平台,平台聚集数十位IT界顶级黑客精英大神,软件-网站开发工程师,逆向破解工程师,以及后勤协助人员,网络在线全职兼职人员,强大的IT精英团队聚集,只为为您提供最优质可靠的网络安全技术服务。

联系我们

新加坡-缅甸-菲律宾-美国

0037259400637(服务时间:9:00-18:00)

hk@heike8.com

在线咨询新浪微博官方微信官方微信

黑客客服

网   址:WWW.HKJD.CC
邮箱号:hk@heike8.com
快手号:HeiKeJieDan
电报TG号:hkjd9988
国际客服:0037259400637

快速回复 返回顶部 返回列表