【问题标题】:PyYAML giving constructor errors? [duplicate]PyYAML 给出构造函数错误? [复制]
【发布时间】:2018-06-27 12:27:53
【问题描述】:

所以我目前正在尝试模拟不安全的反序列化攻击。这是我正在使用的代码:

import yaml

with open('malicious.yml') as yaml_file:
    contents = yaml.load(yaml_file)
    print(contents['foo'])

文件恶意.yml 包含以下内容:

foo: !!python/object/apply:subprocess.check_output ['ls']

但是,当我运行脚本时,出现以下错误:

yaml.constructor.ConstructorError: could not determine a constructor for the tag 'tag:yaml.org,2002:python/object/apply:subprocess.check_output'
in "malicious.yml", line 1, column 6

我环顾四周,但仍然找不到原因。任何帮助将不胜感激。

【问题讨论】:

    标签: python yaml pyyaml


    【解决方案1】:

    如果你试图模拟一个不安全的反序列化攻击,你应该使用

    contents = yaml.danger_load(yaml_file)
    

    或使用旧版本的 PyYAML (pip install pyyaml<4)。 API 在 4.1 版中进行了更改,但没有任何文档更改。

    【讨论】:

    • 完美运行,谢谢!
    猜你喜欢
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-17
    • 2017-08-18
    相关资源
    最近更新 更多