请选择 进入手机版 | 继续访问电脑版

专注代码检测 - 阅镜

 找回密码
 立即注册
热搜: 安装 代码
查看: 119|回复: 0

执行命令

[复制链接]

70

主题

70

帖子

232

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
232
发表于 2021-9-12 14:39:58 | 显示全部楼层 |阅读模式
【建议】避免直接调用函数执行系统命令
相关功能的实现应避免直接调用系统命令(如os.system()、os.popen()、subprocess.call()等),优先使用其他同类操作进行代替,比如:通过文件系统API进行文件操作而非直接调用操作系统命令
如评估无法避免,执行命令应避免拼接外部数据,同时进行执行命令的白名单限制。

【必须】过滤传入命令执行函数的字符
程序调用各类函数执行系统命令时,如果涉及的命令由外部传入,过滤传入命令执行函数的字符。
  1. import os
  2. import sys
  3. import shlex

  4. domain = sys.argv[1]
  5. # 替换可以用来注入命令的字符为空
  6. badchars = "\n&;|'"$()`-"
  7. for char in badchars:
  8.     domain = domain.replace(char, " ")

  9. result = os.system("nslookup " + shlex.quote(domain))
复制代码
回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies |上传

本版积分规则

QQ|Archiver|手机版|小黑屋| 阅镜 ( 京ICP备2020034574号 )|网站地图|网站地图点击这里给我发消息

GMT+8, 2022-1-17 08:34 , Processed in 0.049622 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表