示例#1
0
     pass
 if len(dirpaths) > dirpaths_maxnum:  # Check num
     dirpaths = ["more_path"]
 baidu_dirs = ''
 if baidu_dir_engine:
     try:
         baidu_dirs = baidu_dir(
             command='site:%s' %
             urlparse.urlparse(newurl).hostname,
             key_domain=urlparse.urlparse(newurl).hostname)
     except Exception, e:
         # print traceback.format_exc()
         pass
 weakuri = []
 try:
     weakuri = dirscan(newurl)
 except Exception, e:
     # print traceback.format_exc()
     pass
 weakuri = baidu_status + github_status + weakuri
 try:
     write_file(
         '<tr><td><a href="%s" target=_blank />%s</a></td><td>%s</td><td><font color="blue">%s</font></td><td><font color="red">%s</font></td><td>%s&nbsp;b</td><td>%s</td><td><font color="blue">%s%s</font></td><td><ul><li>%s</li><li>%s</li><ul/></td></tr>\n\n'
         % (newurl, newurl, ip, code, newtitle, lenth, [
             dirpath_key
             for dirpath_key in set(dirpaths + weakuri)
         ], baidu_dirs, alllinks, emails, ips), output_file)
 except Exception, e:
     # print traceback.format_exc()
     print '[!] output_error'
     write_file(newurl,
示例#2
0
def checkDir(url, target, module):
    '''
	Main requests function with Portscan && Dirscan
	'''
    output_file = report_filename(target, module)
    url = url_handle(url)
    try:
        if url not in filter_urls and filter_list(module=url,
                                                  filter_list=sub_filter_list):
            filter_urls.append(url)
            ip, open_ports, baidu_status, github_status = url, [], [], []
            print '[*] Now scanning: ' + url
            if module in ['autoscan', 'dirscan', 'single']:  # Handle c_ip scan
                if baidu_engine:
                    print '[*] Check Baidu site: %s' % urlparse.urlparse(
                        url).hostname
                    baidu_status = baidu_check(url)
                if github_engine:
                    print '[*] Check Github status: %s' % urlparse.urlparse(
                        url).hostname
                    github_status = github_check(url)
            try:
                ip = url2ip(url)
                if not is_internal_ip(ip) and ip not in filter_ips.keys(
                ) and ip != '':  # filter internal_ip
                    print '[+] Get url2ip: ' + ip
                    open_ports = portscan(ip)
                    filter_ips[ip] = open_ports
                    write_file(
                        str(ip) + ',' +
                        str(open_ports).replace('[', '').replace(']', ''),
                        handle_ext(output_file) + portscan_opens_file)
                    if len(open_ports) > openports_maxnum:
                        print '[!] Maybe got port waf'
                        write_file(
                            ip,
                            handle_ext(output_file) + portscan_maxnum_file)
                        open_ports = []
                else:
                    open_ports = filter_ips[ip]
            except Exception, e:
                # print traceback.format_exc()
                write_file(url, handle_ext(output_file) + url2ip_error_file)
                pass
            print '[+] Get open ports: ' + str(open_ports)
            if open_ports == []:  #or 80 not in open_ports
                try:
                    newtitle, code, lenth, content = '', '', '', ''
                    try:
                        newtitle, code, lenth, content = getitle(url)
                    except Exception, e:
                        # print traceback.format_exc()
                        pass
                    if code in range(
                            200, 405
                    ) and code != 401:  # add Do not scan 401 status_code
                        try:
                            print '[+] Get title: %s,status_code: %s,content lenth: %s' % (
                                newtitle, code, lenth)
                        except:
                            pass
                        write_file(
                            url,
                            handle_ext(output_file) +
                            '/%s_alive_urls.txt' % handle_ext_old(target))
                        if title_filter not in newtitle and filter_list(
                                module=newtitle,
                                filter_list=title_filter_list):
                            alllink, alllinks, emails, ips = [], [], [], []
                            try:
                                alllink, alllinks, emails, ips = getallink(
                                    url, content)
                            except Exception, e:
                                # print traceback.format_exc()
                                pass
                            dirpaths = []
                            try:
                                dir_urls = scandir_again(url, alllink)
                                if len(dir_urls) < link_maxnum:
                                    for dir_url in dir_urls:
                                        dirpaths += weakfile(dir_url)
                            except Exception, e:
                                # print traceback.format_exc()
                                pass
                            if len(dirpaths) > dirpaths_maxnum:
                                dirpaths = ["more_path"]
                            weakuri = []
                            try:
                                weakuri = dirscan(url)
                            except Exception, e:
                                # print traceback.format_exc()
                                pass
                            baidu_dirs = ''
                            if baidu_dir_engine and module in [
                                    'autoscan', 'dirscan', 'single'
                            ]:
                                try:
                                    baidu_dirs = baidu_dir(
                                        command='site:%s' %
                                        urlparse.urlparse(url).hostname,
                                        key_domain=urlparse.urlparse(
                                            url).hostname)
                                except Exception, e:
                                    # print traceback.format_exc()
                                    pass
                            weakuri = baidu_status + github_status + weakuri
                            try:
                                write_file(
                                    '<tr><td><a href="%s" target=_blank />%s</a></td><td>%s</td><td><font color="blue">%s</font></td><td><font color="red">%s</font></td><td>%s&nbsp;b</td><td>%s</td><td><font color="blue">%s%s</font></td><td><ul><li>%s</li><li>%s</li><ul/></td></tr>\n\n'
                                    % (url, url, ip, code, newtitle, lenth, [
                                        dirpath_key
                                        for dirpath_key in set(dirpaths +
                                                               weakuri)
                                    ], alllinks, baidu_dirs, emails, ips),
                                    output_file)
                            except Exception, e:
                                # print traceback.format_exc()
                                print '[!] output_error'
                                write_file(
                                    url,
                                    handle_ext(output_file) +
                                    output_error_file)
                                pass