首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Java安全之SnakeYaml反序列化

YAML基本格式要求: YAML大小写敏感; 使用缩进代表层级关系; 缩进只能使用空格,不能使用TAB,不要求空格个数,只需要相同层级左对齐(一般2个或4个空格) Java 常见用来处理 yaml 的库就是SnakeYaml...SnakeYaml是一个完整的YAML1.1规范Processor,支持UTF-8/UTF-16,支持Java对象的序列化/反序列化,支持所有YAML定义的类型。...测试环境 java version “1.8.0_71” pom.xml org.yaml snakeyaml...因此控制这个类的静态代码块就有机会执行任意代码了,这部分代码实现可以参考https://github.com/artsploit/yaml-payload/ 那么SPI和SnakeYaml如何联系起来呢...反序列化分析 | nice_0e3 SnakeYAML反序列化及可利用Gadget | Y4tacker Java安全之yaml反序列化 | jiang

40710
您找到你想要的搜索结果了吗?
是的
没有找到

细数Java项目中用过的配置文件(YAML篇)

在不同的编程语言中,都有很多三方工具可以解析 YAML 文件,而在 Java 项目可以用 SnakeYaml 进行解析,接下来就写写代码体验一下 yaml 文件的解析。... org.yaml snakeyaml 1.18...从原项目中直接拿来,为了清晰,索性只留解析 YAML 文件部分的代码,呈现给你) import org.apache.commons.collections4.MapUtils; import org.yaml.snakeyaml.Yaml...其中 SnakeYaml 类库还有很多 API 可以使用,不一一带着写代码啦,感兴趣的自行参考 SnakeYaml 官方文档,去照猫画虎敲敲吧。...https://bitbucket.org/asomov/snakeyaml/wiki/Documentation 另外,细心的你在平时研发时,有没有发现,有的项目 YAML 文件的后缀是 .yml,有的项目却是

1.2K20

IDEA动态调试(三)——反序列化漏洞(xml+Yaml)

这篇主讲xml和yaml格式数据的处理,xml处理库主要有Xmldecoder和XStream;Yaml类似于XML,如常见的docker-compose.yml,其最主流的处理库是SnakeYaml,...[CDATA[ blue]]> 3、SnakeYaml 1) 序列化: Yaml 使用dump...3)原理: SnakeYaml全版本存在反序列化漏洞,当Yaml.load()函数的参数外部可控时,攻击者就可以传入一个恶意类的yaml格式序列化内容,当服务端进行yaml反序列化获取恶意类时就会触发...SnakeYaml反序列化漏洞。...类比下Fastjson的反序列化的类方法调用,同样调用了反序列化的类的构造函数和yaml格式内容中包含的属性的setter方法,这里可以在yaml.load(s)处打断点,可跟踪SnakeYaml反序列化的调用链

2.7K20

jeecgboot常见问题及处理方法-found character @ that cannot start any token. (Do not use @ for indentation)

org.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingValue.produce(ParserImpl.java:586) at org.yaml.snakeyaml.parser.ParserImpl.peekEvent...org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:248) at org.yaml.snakeyaml.composer.Composer.composeMappingNode...) at org.yaml.snakeyaml.composer.Composer.composeMappingNode(Composer.java:236) at org.yaml.snakeyaml.composer.Composer.composeNode...org.yaml.snakeyaml.composer.Composer.composeMappingChildren(Composer.java:248) at org.yaml.snakeyaml.composer.Composer.composeMappingNode...(Composer.java:236) at org.yaml.snakeyaml.composer.Composer.composeNode(Composer.java:162) at org.yaml.snakeyaml.composer.Composer.getNode

3.2K40
领券