这个函数应该调用nikto将它的输出作为字符串返回,而是永远挂起。我不顾一切地想弄清楚为什么这不起作用,我已经尝试了我能想到的一切。
def nikto(host, *args):
arguments = ' '.join(args)
command = 'nikto -host {} {}'.format(host, arguments)
return commands.getoutput(command)
Nikto是一个开源(GPL)Web服务器扫描程序,可针对多个项目对Web服务器执行全面测试,包括6400多个潜在危险文件/ CGI,检查超过1200个服务器的过期版本,以及超过270个版本的特定问题服务器
的Perl
我也试过os.popen('nikto').read()
Linux rwilson-Aspire-E5-521 3.16.0-55-generic#74~14.04.1-Ubuntu SMP Tue 11月17日10:15:59 UTC 2015 x86_64 x86_64 x86_64 GNU / Linux
答案 0 :(得分:0)
如果你想调用命令并使其输出简单,请使用subprocess.check_output
。
def nikto(host, *args):
return subprocess.check_output(['nikto', '-host', host] + args)
但是,请注意,如果命令的返回代码非零,则此方法将引发异常,但异常将在其output
属性中包含输出。
如果要捕获命令的stderr和stdout,请添加参数stderr=subprocess.STDOUT
。