您的位置:首页 > 编程语言 > Python开发

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

2020-02-01 04:27 701 查看
#!/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; +http://www.google.com/bot.html)' }
                                        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 www.google.com 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()

转载于:https://my.oschina.net/chinahermit/blog/185817

  • 点赞
  • 收藏
  • 分享
  • 文章举报
chuancuili8770 发布了0 篇原创文章 · 获赞 0 · 访问量 1675 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: