这确实是危险的,最安全的选择是
ast.literal_eval(请参阅标准库中的ast模块)。当然,您可以构建和更改一个
ast,以便在评估结果AST之前(当其取决于文字时)提供变量评估等。
start的可能利用是
eval从它可以动手的任何对象开始(
True在这里说),然后通过.__
class_转到其类型对象,依此类推,直到
object,然后获取其子类…基本上它可以到达任何对象类型并破坏破坏。我可以更具体一些,但我不希望在公共论坛上使用(该漏洞众所周知,但是考虑到仍然有很多人忽略它,将其透露给脚本小子可能会使情况变得更糟…只是避免
eval未经消毒的情况而已)用户输入并从此过上幸福的生活!-)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)