update some details
This commit is contained in:
@@ -1,10 +1,10 @@
|
|||||||
from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor, as_completed
|
from concurrent.futures import ThreadPoolExecutor, ProcessPoolExecutor, as_completed
|
||||||
from core.requester import requester
|
|
||||||
|
|
||||||
|
|
||||||
def quicksliver(func,number_process):
|
def quicksliver(func,number_process):
|
||||||
|
"""fixed a big bug on 12.24 Merry Christmas"""
|
||||||
|
|
||||||
with ThreadPoolExecutor(max_workers = number_process) as executor:
|
with ThreadPoolExecutor(max_workers = number_process) as executor:
|
||||||
futures = [executor.submit(func) for count in range(number_process)]
|
futures = [executor.submit(func) for count in range(number_process)]
|
||||||
for future in as_completed(futures):
|
|
||||||
future.result()
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ from urllib3.exceptions import ConnectTimeoutError
|
|||||||
|
|
||||||
def chambering(url,strike,payload = None,type = None):
|
def chambering(url,strike,payload = None,type = None):
|
||||||
|
|
||||||
if "=" in url:
|
if "=" in url and "?" in url:
|
||||||
data = url.split("?")[1].split("&")
|
data = url.split("?")[1].split("&")
|
||||||
params_extractor = tuple((i.split('=')[0],i.split('=')[1]) for i in data)
|
params_extractor = tuple((i.split('=')[0],i.split('=')[1]) for i in data)
|
||||||
params = {i:j for i, j in params_extractor}
|
params = {i:j for i, j in params_extractor}
|
||||||
@@ -144,5 +144,7 @@ def load_queue(subdomain):
|
|||||||
return subdomain_queue
|
return subdomain_queue
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
# chambering(url, strike, payload=None, type=None):
|
||||||
|
url = "https://plus.jd.com/indexf?low_system=appicon&flow_entrance=appicon11&flow_channel=pc"
|
||||||
|
chambering(url,strike=False)
|
||||||
|
|||||||
@@ -88,6 +88,8 @@ class Attack:
|
|||||||
if not self.target is None:
|
if not self.target is None:
|
||||||
self.initis()
|
self.initis()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
while not self.target_url.empty():
|
while not self.target_url.empty():
|
||||||
target = self.target_url.get()
|
target = self.target_url.get()
|
||||||
strike_pre = assault_pre()
|
strike_pre = assault_pre()
|
||||||
@@ -96,7 +98,6 @@ class Attack:
|
|||||||
|
|
||||||
while not target.empty():
|
while not target.empty():
|
||||||
original = target.get()
|
original = target.get()
|
||||||
# print(self.target_url.qsize())
|
|
||||||
# url = regex.URL_PATH.sub("=", original)
|
# url = regex.URL_PATH.sub("=", original)
|
||||||
"""and self.filter_(url,self.requests_seen)"""
|
"""and self.filter_(url,self.requests_seen)"""
|
||||||
# print("fucking" + original)
|
# print("fucking" + original)
|
||||||
@@ -104,7 +105,7 @@ class Attack:
|
|||||||
if self.domain in original:
|
if self.domain in original:
|
||||||
url, data = chambering(original,strike = False)
|
url, data = chambering(original,strike = False)
|
||||||
received_ = requester(url,data,GET = True,cookie = self.cookie,proxy = self.proxy)
|
received_ = requester(url,data,GET = True,cookie = self.cookie,proxy = self.proxy)
|
||||||
if received_.status_code == 403:
|
if not received_ is None and received_.status_code == 403:
|
||||||
if not self.proxy_queue is None and not self.proxy_queue.empty():
|
if not self.proxy_queue is None and not self.proxy_queue.empty():
|
||||||
self.proxy = get_proxy(self.proxy_queue)
|
self.proxy = get_proxy(self.proxy_queue)
|
||||||
print(f"{blue_green}[+][{time}] Vulnerability scanning is being performed on {original}{end}")
|
print(f"{blue_green}[+][{time}] Vulnerability scanning is being performed on {original}{end}")
|
||||||
@@ -126,10 +127,9 @@ class Attack:
|
|||||||
|
|
||||||
if vul_type in ["SQLi","file_inclusion","command_injection","ssrf"]:
|
if vul_type in ["SQLi","file_inclusion","command_injection","ssrf"]:
|
||||||
Poisoned = requester(url,data,GET = True,cookie = self.cookie,proxy = self.proxy)
|
Poisoned = requester(url,data,GET = True,cookie = self.cookie,proxy = self.proxy)
|
||||||
code = Poisoned.status_code
|
|
||||||
|
|
||||||
if not Poisoned is None and code < 400:
|
if not Poisoned is None and Poisoned.status_code < 400:
|
||||||
if error_check(Poisoned):
|
if error_check(Poisoned.text):
|
||||||
if receive_check(received.text,Poisoned.text,vul_type,payload):
|
if receive_check(received.text,Poisoned.text,vul_type,payload):
|
||||||
message = vul_message(vul_type,original,payload)
|
message = vul_message(vul_type,original,payload)
|
||||||
self.logger.critical(message)
|
self.logger.critical(message)
|
||||||
@@ -144,15 +144,4 @@ class Attack:
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
|
||||||
cerberus = Attack("http://www.ztcc.com","StreamLogger")
|
|
||||||
# target = requester("http://www.weibo.com",None,GET = True)
|
|
||||||
# cerberus.url_extrator(target.text)
|
|
||||||
|
|
||||||
|
|
||||||
execut = cerberus.execution
|
|
||||||
# execut()
|
|
||||||
quicksliver(execut,7)
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user