bhp-pro 1.2.9__py3-none-any.whl → 1.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {bhp_pro-1.2.9.dist-info → bhp_pro-1.3.0.dist-info}/METADATA +1 -1
- bhp_pro-1.3.0.dist-info/RECORD +6 -0
- bhp_pro.py +92 -2
- bhp_pro-1.2.9.dist-info/RECORD +0 -6
- {bhp_pro-1.2.9.dist-info → bhp_pro-1.3.0.dist-info}/WHEEL +0 -0
- {bhp_pro-1.2.9.dist-info → bhp_pro-1.3.0.dist-info}/entry_points.txt +0 -0
- {bhp_pro-1.2.9.dist-info → bhp_pro-1.3.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
bhp_pro.py,sha256=WJ2J94cH1-qKf3AynRr8Q4t0GhzNxs2VunaQip0T7zA,748620
|
|
2
|
+
bhp_pro-1.3.0.dist-info/METADATA,sha256=t7JildGhotdLKQG8WAcZWV-rFl9R6FhukOP2UhCNEMs,600
|
|
3
|
+
bhp_pro-1.3.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
4
|
+
bhp_pro-1.3.0.dist-info/entry_points.txt,sha256=Yn3HpraGX3lXX4FPq3Gm-lHh3SwQA-5rtgPWNWMFXkw,41
|
|
5
|
+
bhp_pro-1.3.0.dist-info/top_level.txt,sha256=1xjbIaVM77UJz9Tsi1JjILgE0YDG7iLhY6KSMNEi9zM,8
|
|
6
|
+
bhp_pro-1.3.0.dist-info/RECORD,,
|
bhp_pro.py
CHANGED
|
@@ -16872,6 +16872,94 @@ def menu3():
|
|
|
16872
16872
|
|
|
16873
16873
|
mainsee()
|
|
16874
16874
|
|
|
16875
|
+
#===SUBDOmain TAKEOVER===#
|
|
16876
|
+
def access_control():
|
|
16877
|
+
|
|
16878
|
+
generate_ascii_banner("ACCESS", "CONTROL")
|
|
16879
|
+
THREAD_COUNT = 100
|
|
16880
|
+
|
|
16881
|
+
LOCK = threading.Lock()
|
|
16882
|
+
user_input = input("Enter a domain or .txt file: ").strip()
|
|
16883
|
+
OUTPUT_FILE = input("Enter output file name (default is x_requested_with_results.txt): ").strip() or "x_requested_with_results.txt"
|
|
16884
|
+
def check_domain(domain, progress):
|
|
16885
|
+
preflight_headers = {
|
|
16886
|
+
'Origin': 'https://yahoo.com/',
|
|
16887
|
+
'Access-Control-Request-Method': 'GET',
|
|
16888
|
+
'Access-Control-Request-Headers': 'X-Requested-With, X-Online-Host, X-Forwarded-For',
|
|
16889
|
+
'User-Agent': 'Mozilla/5.0'
|
|
16890
|
+
}
|
|
16891
|
+
|
|
16892
|
+
for protocol in ['http://', 'https://']:
|
|
16893
|
+
url = protocol + domain
|
|
16894
|
+
try:
|
|
16895
|
+
response = requests.options(url, headers=preflight_headers, timeout=5)
|
|
16896
|
+
status = response.status_code
|
|
16897
|
+
allowed_headers = response.headers.get('Access-Control-Allow-Headers', '').lower()
|
|
16898
|
+
|
|
16899
|
+
allowed = []
|
|
16900
|
+
if 'x-requested-with' in allowed_headers:
|
|
16901
|
+
allowed.append('X-Requested-With')
|
|
16902
|
+
if 'x-online-host' in allowed_headers:
|
|
16903
|
+
allowed.append('X-Online-Host')
|
|
16904
|
+
if 'x-forwarded-for' in allowed_headers:
|
|
16905
|
+
allowed.append('X-Forwarded-For')
|
|
16906
|
+
|
|
16907
|
+
if allowed:
|
|
16908
|
+
server = response.headers.get('Server', 'Unknown')
|
|
16909
|
+
print(f"✅ {url} - ALLOWS: {', '.join(allowed)} | Status: {status}")
|
|
16910
|
+
with LOCK:
|
|
16911
|
+
with open(OUTPUT_FILE, "a") as f:
|
|
16912
|
+
f.write(f"{url} | Status: {status} | Server: {server} | Allowed Headers: {', '.join(allowed)}\n")
|
|
16913
|
+
else:
|
|
16914
|
+
print(f"⚠️ {url} - None of the desired X-* headers allowed.")
|
|
16915
|
+
|
|
16916
|
+
except requests.exceptions.RequestException as e:
|
|
16917
|
+
print(f"❌ {url} - Request failed: {e}")
|
|
16918
|
+
finally:
|
|
16919
|
+
with LOCK:
|
|
16920
|
+
progress.update(1)
|
|
16921
|
+
|
|
16922
|
+
|
|
16923
|
+
def worker(domain_queue, progress):
|
|
16924
|
+
while not domain_queue.empty():
|
|
16925
|
+
domain = domain_queue.get()
|
|
16926
|
+
check_domain(domain, progress)
|
|
16927
|
+
domain_queue.task_done()
|
|
16928
|
+
|
|
16929
|
+
def access_main():
|
|
16930
|
+
|
|
16931
|
+
|
|
16932
|
+
if os.path.isfile(user_input) and user_input.endswith('.txt'):
|
|
16933
|
+
with open(user_input, 'r') as file:
|
|
16934
|
+
domains = [line.strip() for line in file if line.strip()]
|
|
16935
|
+
else:
|
|
16936
|
+
domains = [user_input]
|
|
16937
|
+
|
|
16938
|
+
if os.path.exists(OUTPUT_FILE):
|
|
16939
|
+
os.remove(OUTPUT_FILE)
|
|
16940
|
+
|
|
16941
|
+
domain_queue = Queue()
|
|
16942
|
+
for domain in domains:
|
|
16943
|
+
domain_queue.put(domain)
|
|
16944
|
+
|
|
16945
|
+
progress = tqdm(total=len(domains) * 2, desc="Checking", ncols=80)
|
|
16946
|
+
|
|
16947
|
+
threads = []
|
|
16948
|
+
for _ in range(THREAD_COUNT):
|
|
16949
|
+
t = threading.Thread(target=worker, args=(domain_queue, progress))
|
|
16950
|
+
t.start()
|
|
16951
|
+
threads.append(t)
|
|
16952
|
+
|
|
16953
|
+
for t in threads:
|
|
16954
|
+
t.join()
|
|
16955
|
+
|
|
16956
|
+
progress.close()
|
|
16957
|
+
print(f"\n✅ Finished checking. Results saved to {OUTPUT_FILE}")
|
|
16958
|
+
|
|
16959
|
+
|
|
16960
|
+
access_main()
|
|
16961
|
+
|
|
16962
|
+
|
|
16875
16963
|
def x_menu():
|
|
16876
16964
|
|
|
16877
16965
|
def return_to_menu():
|
|
@@ -16901,6 +16989,7 @@ def menu3():
|
|
|
16901
16989
|
"3. INFO",
|
|
16902
16990
|
"4. Wif Abomination",
|
|
16903
16991
|
"5. KPROXY_SCANNER" ,
|
|
16992
|
+
"6. ACCESS CONTROL" ,
|
|
16904
16993
|
|
|
16905
16994
|
]
|
|
16906
16995
|
|
|
@@ -16925,7 +17014,8 @@ def menu3():
|
|
|
16925
17014
|
"2": ipcam,
|
|
16926
17015
|
"3": info,
|
|
16927
17016
|
"4": wifi_deauth,
|
|
16928
|
-
"5": prox
|
|
17017
|
+
"5": prox,
|
|
17018
|
+
"6": access_control,
|
|
16929
17019
|
|
|
16930
17020
|
|
|
16931
17021
|
}
|
|
@@ -16968,7 +17058,7 @@ def banner():
|
|
|
16968
17058
|
MAGENTA + "██╔═══╝ ██╔══██╗██║ ██║" + LIME + "user should understand that useage of this script may be" + ENDC,
|
|
16969
17059
|
MAGENTA + "██║ ██║ ██║╚██████╔╝" + LIME + "concidered an attack on a data network, and may violate terms" + ENDC,
|
|
16970
17060
|
MAGENTA + "╚═╝ ╚═╝ ╚═╝ ╚═════╝" + LIME + "of service, use on your own network or get permission first" + ENDC,
|
|
16971
|
-
PURPLE + "script_version@ 1.
|
|
17061
|
+
PURPLE + "script_version@ 1.3.0 ®" + ENDC,
|
|
16972
17062
|
ORANGE + "All rights reserved 2022-2026 ♛: ®" + ENDC,
|
|
16973
17063
|
MAGENTA + "In Collaboration whit Ayan Rajpoot ® " + ENDC,
|
|
16974
17064
|
BLUE + "Support: https://t.me/BugScanX 💬" + ENDC,
|
bhp_pro-1.2.9.dist-info/RECORD
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
bhp_pro.py,sha256=PILeO-qsRI54JDAkMxqhte87SrQhNyhaGnb52xypsFU,745023
|
|
2
|
-
bhp_pro-1.2.9.dist-info/METADATA,sha256=ymCnXEbRzRbwrBjss9-hGyZIDXqjHdIEUKWKTEk38-c,600
|
|
3
|
-
bhp_pro-1.2.9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
4
|
-
bhp_pro-1.2.9.dist-info/entry_points.txt,sha256=Yn3HpraGX3lXX4FPq3Gm-lHh3SwQA-5rtgPWNWMFXkw,41
|
|
5
|
-
bhp_pro-1.2.9.dist-info/top_level.txt,sha256=1xjbIaVM77UJz9Tsi1JjILgE0YDG7iLhY6KSMNEi9zM,8
|
|
6
|
-
bhp_pro-1.2.9.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|