Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion WebRecon.py
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,9 @@ def _setup_targets(self) -> queue.Queue:
if self.host_is_resolved:
self._log_progress("skipping dns scan, host is resolved...")
return domains
subdomain_scanner.DNSScanner(target_url=self.target_hostname, domains_queue=domains,
subdomain_scanner.DNSScanner(target_url=self.target_hostname,
domains_queue=domains,
original_subdomain=self.subdomain,
**self._generate_scanner_args(DNSScanner.SCAN_NICKNAME)).start_scanner()
return domains

Expand Down
4 changes: 3 additions & 1 deletion scanners/bypass_403.py
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ def try_bypass(self) -> dict:
return results

def send_request(self, method, path, headers=None) -> int:
response = str()
response = 0
time.sleep(self.request_cooldown)
try:
response = self._make_request(method=method, url=path, headers=headers,
Expand All @@ -147,6 +147,8 @@ def send_request(self, method, path, headers=None) -> int:
except requests.exceptions.TooManyRedirects:
self._log_exception(requests.exceptions.TooManyRedirects.__name__, abort=False)
return ScannerDefaultParams.TooManyRedirectsSCode
except Exception as exc: # error -> return 0
pass
return response

def _start_scanner(self, results_filename=None) -> Dict[int, List[str]]:
Expand Down
11 changes: 9 additions & 2 deletions scanners/subdomain_scanner.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,21 @@ class DNSScanner(Scanner):
_SUPPORTS_CACHE = True
_WRITE_RESULTS = True

def __init__(self, domains_queue=None, *args, **kwargs):
def __init__(self, domains_queue=None, original_subdomain=None, *args, **kwargs):
super().__init__(*args, **kwargs)
self.original_subdomain = original_subdomain
if self.original_subdomain is not None:
url_path = self.generate_url_base_path(self.original_subdomain)
self._save_results(f"{url_path}\n")
self.domains_queue = domains_queue if domains_queue else queue.Queue()

def single_bruter(self):

while not self.words_queue.empty() and not ScanManager._SHOULD_ABORT:
url_path = self.generate_url_base_path(self.words_queue.get())
subdomain = self.words_queue.get()
if subdomain == self.original_subdomain:
continue
url_path = self.generate_url_base_path(subdomain)
found = False
try:
res = self._make_request(method="GET", url=url_path)
Expand Down