yaml vs json

image.png
要求注释已经写的很明显了,所以需要考验我们的搜索能力了
如何找到一个字符串可以被json.loads()和yaml.safe_load()同时读取并且得到不同的结果
浅浅搜索一下就可以知道,json跟yaml几乎是一个东西的不同表现形式
只是yaml的可读性更强,想让他们解析出不同的结果,首先是输入的字符串一定是json格式
在我尝试时发现,如果用json格式作为输入基本上字符串都会被加上引号,所以我开始寻找数字,比如科学计数法中json格式会保留,而转为yaml时却会解析为整数格式,{“a”:1e1}会解析为a:10,这样我就拿到了第一个flag
json格式的规范是什么呢,由ecma-404rfc 8259定义(由wp提供),其中对于相同键值描述与yaml1.2不太相同,在yaml1.2中键值相同会报错但是yaml1.0中就不会,并且json也不会,so我侥幸拿到了第二个flag,至于为什么我想到了这个,是因为
image.png
其中我看到第四条给的灵感