Skip to content

Commit c27a633

Browse files
authored
Merge pull request #4 from flashnuke/fix/dup_dns
Fix/dup dns
2 parents ad6e22d + 030fb6c commit c27a633

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

WebRecon.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,9 @@ def _setup_targets(self) -> queue.Queue:
172172
if self.host_is_resolved:
173173
self._log_progress("skipping dns scan, host is resolved...")
174174
return domains
175-
subdomain_scanner.DNSScanner(target_url=self.target_hostname, domains_queue=domains,
175+
subdomain_scanner.DNSScanner(target_url=self.target_hostname,
176+
domains_queue=domains,
177+
original_subdomain=self.subdomain,
176178
**self._generate_scanner_args(DNSScanner.SCAN_NICKNAME)).start_scanner()
177179
return domains
178180

scanners/bypass_403.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ def try_bypass(self) -> dict:
136136
return results
137137

138138
def send_request(self, method, path, headers=None) -> int:
139-
response = str()
139+
response = 0
140140
time.sleep(self.request_cooldown)
141141
try:
142142
response = self._make_request(method=method, url=path, headers=headers,
@@ -147,6 +147,8 @@ def send_request(self, method, path, headers=None) -> int:
147147
except requests.exceptions.TooManyRedirects:
148148
self._log_exception(requests.exceptions.TooManyRedirects.__name__, abort=False)
149149
return ScannerDefaultParams.TooManyRedirectsSCode
150+
except Exception as exc: # error -> return 0
151+
pass
150152
return response
151153

152154
def _start_scanner(self, results_filename=None) -> Dict[int, List[str]]:

scanners/subdomain_scanner.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,21 @@ class DNSScanner(Scanner):
2222
_SUPPORTS_CACHE = True
2323
_WRITE_RESULTS = True
2424

25-
def __init__(self, domains_queue=None, *args, **kwargs):
25+
def __init__(self, domains_queue=None, original_subdomain=None, *args, **kwargs):
2626
super().__init__(*args, **kwargs)
27+
self.original_subdomain = original_subdomain
28+
if self.original_subdomain is not None:
29+
url_path = self.generate_url_base_path(self.original_subdomain)
30+
self._save_results(f"{url_path}\n")
2731
self.domains_queue = domains_queue if domains_queue else queue.Queue()
2832

2933
def single_bruter(self):
3034

3135
while not self.words_queue.empty() and not ScanManager._SHOULD_ABORT:
32-
url_path = self.generate_url_base_path(self.words_queue.get())
36+
subdomain = self.words_queue.get()
37+
if subdomain == self.original_subdomain:
38+
continue
39+
url_path = self.generate_url_base_path(subdomain)
3340
found = False
3441
try:
3542
res = self._make_request(method="GET", url=url_path)

0 commit comments

Comments
 (0)