在这个语法树构造中,body里包含着if构造中的语句return HttpResponse("2"),type为Compare表示该构造体为断定语句,left表示左值即源码中的type,test构造体中则是用来进行if断定,test中的ops对应着源码中的not in,表示比较断定,comparators则是被比较的元素。如许源码就和Python语法树一一对应起来,有了这些一一对应的基本,就有了断定Python注入问题的原型。
Python因为其简单,快速,库丰富的特点在国内应用的越来越广泛,然则一些不好的用法却带来了严重的安然问题,本文大年夜Python源码入手,分析其语法树,跟踪数据流来断定是否存在注入点。
0x01 引言
Python注入问题是说用户可以控制输入,导致体系履行一些危险的操作。它是Python中比较常见的安然问题,特别是把python作为web应用层的时刻这个问题就加倍凸起,它包含代码注入,OS敕令注入,sql注入,随便率性文件下载等。
0x02 注入的场景
主如果在web应用处景中,用户可直接控制输入参数,并且法度榜样未做任何参数断定或者处理,直接就进入了危险函数中,导致履行一些危险的操作。重要的注仁攀类型有:
(一)OS敕令注入
主如果法度榜样中经由过程Python的OS接口履行体系