sys模块与OS模块

sys模块

内置的sys模块使我们能访问到由python解释器使用或维护的对象,其中包括标志、版本、整形数的最大尺寸、可用的模板、hook路径、标准错误/输入/输出的位置,以及调用解释器的命令行参数。与sys模块交互对创建python脚本非常有帮助。
利用import sys 导入sys模块文件。通过dir()方法查看模块中可用的方法。

在这里插入图片描述
sys.argv列表中含有所有的命令行参数。第一个sys.argv[0]元素是python脚本的名称。列表中其余元素中则记录了之后所有的命令行参数。

import sys
print("The command line arguments are:")
for i in sys.argv:
    print (i)
print('\n\nThe PYTHON is',sys.path,'\n')

在这里插入图片描述
在这里插入图片描述

import sys
if len(sys.argv)==1:
    filename = sys.argv[0]
    print("[+]Reading Vulnerabilities From:"+filename)

在这里插入图片描述

import sys
if len(sys.argv)==2:
    filename = sys.argv[1]
    print("[+]Reading Vulnerabilities From:"+filename)

在这里插入图片描述

OS模块

内置的OS模块提供了丰富的适用于Mac、NT或Posix的操作系统的函数。这个模块允许程序独立地与操作系统环境、文件系统、用户数据库以及权限进行交互。

import sys
import os
if len(sys.argv)==2:
    filename = sys.argv[1]
    if not os.path.isfile(filename):
        print ("[-]"+filename+'dose not exist')
        exit(0)
    if not os.access(filename,os.R_OK):
        print("[-]"+filename+'access denied')
        exit(0)
    print("[+]Reading Vulnerabilities From:"+filename)

在这里插入图片描述
对脚本作以优化。

import socket
import os
import sys
def retBanner(ip,port):
    try:
        socket.setdefaulttimeout(2)
        s = socket.socket()
        s.connect((ip,port))
        banner = str(s.recv(1024))
        return banner
    except:
        return
def checkVulnes(banner,filename):
    f=open(filename,'r')
    for line in f.readlines():
        if line.strip('\n') in banner:
            print("[+]server is vulunerable:"+banner.strip("\n"))
def main():
    if len(sys.argv)==2:
        filename = sys.argv[1]
        if not os.path.isfile(filename):
            print ("[-]"+filename+"dose not exist")
            exit(0)
        if not os.access(filename,os.R_OK):
            print("[-]"+filename+"access denied")
            exit(0)
        else:
            portList = [21]
        for x in range(219,220):
            ip = "192.168.0."+str(x)
            for port in portList:
                banner = retBanner(ip,port)
                if banner:
                    print ("[+]"+ip+":"+banner)
                    checkVulnes(banner,filename)
    else:
        print("[-] Usage:"+str(sys.argv[0])+'<vuln filename>')
        exit(0)
        
if __name__ == '__main__':
    main()

在这里插入图片描述

发布了37 篇原创文章 · 获赞 29 · 访问量 3704

猜你喜欢

转载自blog.csdn.net/weixin_44253823/article/details/103609406