实际类似的问题在Python原生字符串中就存在,尤其是Python 3.6新增 f 字符串后,虽然利用还不明确,但是应该引起注意。除了上面的payload改写为 print .format 之外,还可以会先把 0 替换为 format 中的参数,然后继续获取相关的属性。这个字符串非常厉害,和Javascript ES6中的模板字符串类似,有了获取当前context下变量的能力。而且不仅仅限制为属性了,代码可以执行了。但是貌似 没有 把一个普通字符串转换为 f 字符串的方法,也就是说用户很可能无法控制一个 f 字符串,可能无法利用,还需要继续查一下。