PYTHON自动化WEB旁注目录扫描器

#!/usr/bin/env python
#encoding = utf-8

import urllib,httplib
from urllib2 import Request, urlopen, URLError
import Queue,sys,time
import re
import socket
import sys
from urlparse import urlparse


class Scanner():
    

        def __init__(self):
                alldomains = self.getdomains()
                print "There are %d website in the same server" % len(alldomains)
                time.sleep(2)

                print "Starting The Scanning[*.*]\n=============================="

                for aim in alldomains:
                        if(self.verifydomain(aim)):
                                for path in paths:
                                        url = 'http://'+aim+path
                                        headers = { 'User-Agent' : 'Mozilla/5.0 (compatible; Googlebot/2.1; +[url]http://www.google.com/bot.html[/url])' }
                                        req = Request(url, None, headers)
                                        try:
                                                response = urlopen(req)
                                        except URLError, e:
                                                #if hasattr(e, 'reason'):
                                                #        print url,'[x] Not Found'
                                                #elif hasattr(e,'code'):
                                                #        print url,'[x]Not Found'
                                                if hasattr(e, 'reason'):
                                                        print url,'[x] Not Found'
                                                elif hasattr(e, "code") and e.code == 401:
                                                        record = "<a href=\"%s\">%s</a>===>FOUND" % (url,url)
                                                        print url," [OK] Found"
                                                        self.writeresult(record)
                                                elif hasattr(e, "code") and e.code == 403:
                                                        record = "<a href=\"%s\">%s</a>===>FOUND" % (url,url)
                                                        print url," [OK] Found"
                                                        self.writeresult(record)
                                                elif hasattr(e, "code") and e.code == 500:
                                                        record = "<a href=\"%s\">%s</a>===>FOUND" % (url,url)
                                                        print url," [OK] Found"
                                                        self.writeresult(record)
                                        else:
                                                record = "<a href=\"%s\">%s</a>===>FOUND" % (url,url)
                                                print url," [OK] Found"
                                                self.writeresult(record)
        

        def getdomains(self):
                doreq = Request('http://domains.yougetsignal.com/domains.php?remoteAddress='+ domain)
                response = urlopen(doreq)
                html = response.read()
                response.close()
                #domains = re.findall(r'(\[\".*?\",\s+\".*?\"\])',html)
                domains = re.findall(r'\[\"(.*?)\"',html)
                #print domains
                #for val in domains:
                #        print val
                #        print self.verifydomain(domains[1])
                return domains
        def verifydomain(self,domains):
                try:
                        Originalhost = socket.getaddrinfo(domain,None)[0][4][0]
                        #print Originalhost
                        domainip = socket.getaddrinfo(domains,None)[0][4][0]
                        #print domainip
                        if(domainip==Originalhost):
                                return True
                        else:
                                return False
                except:
                        print domains+'        connect issue!'

        def writeresult(self,record):
                fp = open(domain+'.html','a+')
                fp.writelines(record+'')
                fp.close()
        def usage(self):
                print "Usage: WebGrabs.py domain dict \n"
                print "\nExamples:WebGrabs.py [url]www.google.com[/url] dict.txt"

                
#domain = raw_input('Url Path>>')
#dic = raw_input("Wordlist Path>>")
 
domain = raw_input('Url   Path>>')
dic = raw_input('Wordlist Path>>')
paths = [line.rstrip() for line in open(dic)]    
def main():
    print('''
             
             ###########################
             #                         # 
             #       WebGrabs Scanner  #
             #                         # 
             ###########################\n>>>
        ''')
    

    Scanner()

if __name__ == '__main__':
    main()

你可能感兴趣的:(PYTHON自动化WEB旁注目录扫描器)