Python学习之OS库的system函数

Python学习之OS库的system()函数

引入

今天学到了一个十分好用的函数,那就是system()函数,这是一个包含再OS库中的一个函数,用于系统命令执行,方便确实是方便但是也有安全风险,如果对输入没有做好过滤,就是出现命令执行(命令注入)漏洞,如果是在服务器对外web页面犯了这样的错误,这样就会威胁到服务器安全。

system()使用实例

system(需要执行的cmd命令),这个是system函数的用法。下面通过一个实例来说明:

import os
libs = {"numpy","matplotlib","pillow","sklearn","requests","jieba","beautifulsoup4","wheel","networkx","sympy","pyinstaller","django","flask","werbot","pyQt5","pandas","pyopengl","pypdf2","docopt","pygame"}
try:
    for lib in libs:
        os.system("pip install "+lib)
    print("Successful")
except:
    print("Failed Somehow")

这个实例用于命令批量安装python第三方库,大大提升了安装效率,自动化安装,避免了多次命令输入,重复低效。运行结果如下,真的是太爽了。
在这里插入图片描述

Python使用不当的后果

import os
post = input("请输入一个IP:")
os.system("ping " + post)

就这样短短的3行演示一下吧。什么过滤都不做直接来。
我输入www.baidu.com,他就执行了ping www.baidu.com的命令。
在这里插入图片描述
当我输入的是`127.0.0.1 & net user时,可以看到它不仅执行了ping命令还执行了net user命令,这就是一个命令注入漏洞了。我还可以使用别的命令让他去执行。
在这里插入图片描述

总结

这是一个十分好用的函数,可以很大程度帮助我们提高命令执行的效率,特别是要进行一些重复性的命令执行时,但是当它再服务器上对外接收输入,又未经过滤时就会时一个定时炸弹,留下了一个命令执行的漏洞,黑客完全可以通过构造命令来对服务器进行命令注入攻击,然后利用一些命令来实现远程控制或者远程操控。

  • 16
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值