有了FTP服务器的登录口令之后,可以进行测试该服务器是否提供Web服务,其中检测通过nlst()列出的每个文件的文件名是不是默认的Web页面文件名,并把找到的所有默认的网页都添加到retList数组中:
#!/usr/bin/python #coding=utf-8 import ftplib def returnDefault(ftp): try: #nlst()方法获取目录下的文件 dirList = ftp.nlst() except: dirList = [] print '[-] Could not list directory contents.' print '[-] Skipping To Next Target.' return retList = [] for filename in dirList: #lower()方法将文件名都转换为小写的形式 fn = filename.lower() if '.php' in fn or '.asp' in fn or '.htm' in fn: print '[+] Found default page: '+filename retList.append(filename) return retList host = '10.10.10.130' username = 'ftpuser' password = 'ftppassword' ftp = ftplib.FTP(host) ftp.login(username,password) returnDefault(ftp)
【修改后的代码】来自:https://blog.csdn.net/SKI_12
#!/usr/bin/python #coding=utf-8 import ftplib def returnDefault(ftp): try: #nlst()方法获取目录下的文件 dirList = ftp.nlst() except: dirList = [] print '[-] Could not list directory contents.' print '[-] Skipping To Next Target.' return retList=[] for fileName in dirList: #lower()方法将文件名都转换为小写的形式 fn = fileName.lower() if '.php' in fn or '.htm' in fn or '.asp' in fn: print '[+] Found default page: ' + fileName retList.append(fileName) if len(retList) == 0: print '[-] Could not list directory contents.' print '[-] Skipping To Next Target.' return retList def main(): while True: host = raw_input('[*]Host >>> ') username = raw_input('[*]Username >>> ') password = raw_input('[*]Password >>> ') try: ftp = ftplib.FTP(host) ftp.login(username,password) returnDefault(ftp) except: print '[-] Logon failed.' print if __name__ == '__main__': main()
调用方式:defaultpages2.py -H 192.168.1.1 -u ftpuser -p ftppassword