本文转自wooyun知识库
0x00 摘要
Python由于其简单,快速,库丰富的特点在国内使用的越来越广泛,但是一些不好的用法却带来了严重的安全问题,本文从Python源码入手,分析其语法树,跟踪数据流来判断是否存在注入点。
关键词: Python 注入 源码 语法树
0x01 引言
Python注入问题是说用户可以控制输入,导致系统执行一些危险的操作。它是Python中比较常见的安全问题,特别是把python作为web应用层的时候这个问题就更加突出,它包括代码注入,OS命令注入,sql注入,任意文件下载等。
0x02 注入的场景
主要是在web应用场景中,用户可直接控制输入参数,并且程序未做任何参数判断或者处理,直接就进入了危险函数中,导致执行一些危险的操作。主要的注入类型有:
(一)OS命令注入
主要是程序中通过Python的OS接口执行系统命令,常见的危险函数有
[AppleScript] 纯文本查看 复制代码
?
1
os.system,os.popen,commands.getoutput,commands.getstatusoutput,subprocess
等一些接口。例如:def myserve(request,fullname)s.system(‘sudo rm -f %s’%fullname),fullname是用户可控的,恶意用户只需利用shell的拼接符;就可以完成一次很好的攻击。
(二)代码注入
是说在注入点可以执行一段代码,这个一般是由python的序列话函数eval导致的,例如:def eval_
python自动化审计及实现
最新推荐文章于 2024-07-14 11:02:56 发布
本文探讨了Python注入问题,包括OS命令注入、代码注入、SQL注入和任意文件下载。通过分析Python源码和语法树,提出了一种自动审查方法,识别潜在的危险函数和可控参数,以防止安全漏洞。重点介绍了如何跟踪数据流判断注入点,并列举了判断可控参数的五种情况。
摘要由CSDN通过智能技术生成