From e66a37ae876d6d1b735fc6232c4ae58595908843 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 15 Feb 2025 21:50:47 +0100 Subject: [PATCH] v1.0.1 release candidate 1 --- .gitignore | 2 +- scripts/__pycache__/utils.cpython-311.pyc | Bin 8482 -> 7938 bytes scripts/lantern.py | 1678 ++++++++--------- scripts/uptimechecker.py | 25 +- scripts/utils.py | 183 +- updaterepo.sh | 8 + www/.known_participants | 3 + www/header.php | 15 +- .../banner.png | Bin 0 -> 14119 bytes .../banner.png | Bin 0 -> 8952 bytes .../banner.png | Bin 0 -> 20935 bytes 11 files changed, 917 insertions(+), 997 deletions(-) create mode 100755 updaterepo.sh create mode 100644 www/.known_participants create mode 100644 www/participants/lantern.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/banner.png create mode 100644 www/participants/lantern.nowhevi57f4lxxd6db43miewcsgtovakbh6v5f52ci7csc2yjzy5rnid.onion/banner.png create mode 100644 www/participants/zhd7yf675dav6njgc7yjwke2u5cq7d5qim2s7xwa2ukxfzubrguqmzyd.onion/banner.png diff --git a/.gitignore b/.gitignore index d2f8ff3..ec5358a 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,3 @@ .git -www/participants/** +www/participants/*/*.csv diff --git a/scripts/__pycache__/utils.cpython-311.pyc b/scripts/__pycache__/utils.cpython-311.pyc index e1d2bbc5a9018072329b4029dfc5a6fcd559a16d..a3df33b32aa09005b9ecaa066de08e7cf40658ac 100644 GIT binary patch delta 3886 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 do -1 to the value if df.at[i,"Score"] > 0: df.at[i,"Score"] = df.at[i,"Score"] - 1 except requests.ConnectionError as e: #print(e) print(url,"❌") - df.at[i,"Status"]="❌" + df.at[i,"Status"]="NO" #if uptime >0 do -1 to the value if df.at[i,"Score"] > 0: df.at[i,"Score"] = df.at[i,"Score"] - 1 except requests.exceptions.ReadTimeout as e: #print(e) print(url,"❌") - df.at[i,"Status"]="❌" + df.at[i,"Status"]="NO" #if uptime >0 do -1 to the value if df.at[i,"Score"] > 0: df.at[i,"Score"] = df.at[i,"Score"] - 1 + df2 = df.sort_values(by=["Score"], ascending=False) #sort by category if you are verified/unverified.csv if csvfilename in csvfiles2sortcat: - df2 = df.sort_values(by=["Category","Name"], ascending=[True,True]) - else: - df2 = df.sort_values(by="Score", ascending=False) + df2 = df.sort_values(by=["Category"], ascending=True) + #print(df2) df2.to_csv(csvfile, index=False) - #print(df2) def IsUrlValid(url:str)->bool: @@ -167,19 +165,14 @@ def IsOnionValid(url: str)-> bool: if len(url.split('.')) > 3: n_subdomians = len(url.split('.')) # Checks if there is more than 1 subdomain. "subdomain.url.onion" only - #print(f"This domain have more than one subdomain. There are {n_subdomians - 1} subdomains") return False else: if len(url) < 62: - #print("Domain length is less than 62.") return False return True elif pattern.fullmatch(url) is None: - #print("Domain contains invalid character.") - #print(url) return False else: - #print("Domain not valid") return False except Exception as e: print(f"Error: {e}") diff --git a/scripts/utils.py b/scripts/utils.py index 24db984..e6b6bc4 100644 --- a/scripts/utils.py +++ b/scripts/utils.py @@ -1,158 +1,120 @@ -import os, pwd, re, pandas as pd, requests, shutil +import re +import requests from PIL import Image -import urllib -import socks, socket, glob PURPLE = '\033[35;40m' BOLD_PURPLE = '\033[35;40;1m' -ORANGE = '\033[33;40;1m' RED = '\033[31;40m' BOLD_RED = '\033[31;40;1m' RESET = '\033[m' + #### Checking Functions to validate that links are legit #### def CheckUrl(url): - """ - Checks if URL is actually reachable via Tor - """ - proxies = { - 'http': 'socks5h://127.0.0.1:9050', - 'https': 'socks5h://127.0.0.1:9050' - } - try: - status = requests.get(url,proxies=proxies, timeout=5).status_code - print('[+]',url,status) - if status != 502: - #print(url,"✔️") - return True - else: - #print(url,"❌") - return False - except requests.ConnectionError as e: - #print(url,"❌") - return False - except requests.exceptions.ReadTimeout as e: - #print(url,"❌") - return False + """ + Checks if URL is actually reachable via Tor + """ + proxies = { + 'http': 'socks5h://127.0.0.1:9050', + 'https': 'socks5h://127.0.0.1:9050' + } + try: + status = requests.get(url,proxies=proxies, timeout=5).status_code + if status != 502: + return True + else: + return False + except requests.ConnectionError as e: + return False + except requests.exceptions.ReadTimeout as e: + return False + #### PROTECTIONS AGAINST MALICIOUS CSV INPUTS #### def IsBannerValid(path: str) -> bool: - """ - Checks if the banner.png file has the correct dimensions (240x60) - """ - #print('[+] checking image size') - try: - im = Image.open(path) - except Exception as e: - return False - #im = Image.open("favicon.png") - width, height = im.size - #print('width =',width, 'height=',height) - if width != 240 or height != 60: - #print('[-] Banner doesnt have the correct size (240x60)') - return False - else: - #print('[+] Banner has the correct size (240x60)') - return True + """ + Checks if the banner.png file has the correct dimensions (240x60) + """ + try: + im = Image.open(path) + except Exception as e: + print("ERROR, EXCEPTION") + return False + width, height = im.size + if width != 240 or height != 60: + print("INVALID BANNER DIMENSIONS, HEIGHT=",height," WIDTH=",width) + return False + + return True def IsOnionValid(url: str)-> bool: """ Checks if the domain(param) is a valid onion domain and return True else False. """ - # check if the characters are only [a-zA-Z0-9.] with maximum 128 chars max? - # check that it is only url.onion or subdomain.url.onion, - # if OK return True - #if not : return False try: - pattern = re.compile("^[A-Za-z0-9.]+(\.onion)?$") + pattern = re.compile("^[A-Za-z0-9.]+(.onion)?$") url = url.strip().removesuffix('/') if url.startswith('http://'): - #print('URL starts with http') - # Removes the http:// domain = url.split('/')[2] if pattern.fullmatch(domain) is not None: if len(domain.split('.')) > 3: - n_subdomians = len(domain.split('.')) - # Checks if there is more than 1 subdomain. "subdomain.url.onion" only - #print(f"This domain have more than one subdomain. There are {n_subdomians} subdomains") return False else: if len(domain) < 62: - #print("Domain length is less than 62.") return False return True elif pattern.fullmatch(domain) is None: - #print("Domain contains invalid character.") - #print(domain) return False else: - #print("Domain not valid") return False else: - #TODO : edit the url to make sure it has http:// at the beginning, in case if it's missing? (problem is that it only returns true or false) - #print("URL doesn't start http") + #TODO : edit the url to make sure it has http:// at the beginning, in case if it's missing? (problem is that it only returns true or false) if pattern.fullmatch(url) is not None: if len(url.split('.')) > 3: - n_subdomians = len(url.split('.')) - # Checks if there is more than 1 subdomain. "subdomain.url.onion" only - #print(f"This domain have more than one subdomain. There are {n_subdomians - 1} subdomains") return False else: if len(url) < 62: - #print("Domain length is less than 62.") return False return True elif pattern.fullmatch(url) is None: - #print("Domain contains invalid character.") - #print(url) return False else: - #print("Domain not valid") return False except Exception as e: - print(f"Error: {e}") + return False + def IsUrlValid(url:str)->bool: """ Check if url is valid both dark net end clearnet. """ - # check if the characters are only [a-zA-Z0-9.:/] with maximum 128 chars max? - # check that it is only http(s)://wordA.wordB or http(s)://WordC.WordB.WordC, (onion or not), clearnet is fine too (double check if those are fine!) - # if OK return True - #if not : return False pattern = re.compile("^[A-Za-z0-9:/.-]+$") url = str(url) if len(url) < 4: - #print("Status: Got more than one character or nothing.") return False if url.endswith('.onion'): return IsOnionValid(url) else: if not url.__contains__('.'): - #print("No (DOT) in clearnet url") return False if pattern.fullmatch(url) is None: - #print('Url contains invalid chars') return False return True + def IsStatusValid(status: str)-> bool: """ - Checks if status contains only [v,x,❌,✔️]. Verbose only if False is returned + Checks if status contains only ['YES','NO']. Verbose only if False is returned """ - pattern = ['y','n','✔️','❌','','nan'] + pattern = ['YES','NO','✔️','❌',''] + #pattern = ['YES','NO'] status = str(status) status.strip() - #print('[+] STATUS = ',status.splitlines()) - if len(status) > 4: - #print("Status: Got more than one character or nothing.") - return False - elif (status not in pattern): - #print("Status: Got an invalid character it must be either y, n, ✔️, or ❌ ") + if (status not in pattern): return False return True @@ -162,24 +124,15 @@ def IsScoreValid(score:str)->bool: """ Check the Score is only "^[0-9.,]+$" with 8 max chars. """ - # check if the characters are only [a-zA-Z0-9.,' ] with maximum 256 chars max - #(careful with the ' and , make sure you test if it fucks the csv up or else) - # if OK return True - #if not : return False pattern = re.compile("^[0-9.,]+$") score = str(score) score.strip() - #pattern = ['','nan'] if score in ['','nan']: - #Score can be empty when initially added return True if pattern.fullmatch(score) is None: - # empty description is fine as it's optional return False elif len(score) > 8: - #print("score is greater than 8 chars") return False - # empty score is fine return True @@ -187,12 +140,7 @@ def IsDescriptionValid(desc:str)->bool: """ Check the categories are only [a-zA-Z0-9.' ] with 256 max chars. """ - # check if the characters are only [a-zA-Z0-9.,' ] with maximum 256 chars max - #(careful with the ' and , make sure you test if it fucks the csv up or else) - # if OK return True - #if not : return False if desc == "": - # empty description is fine as it's optional return True pattern = re.compile("^[A-Za-z0-9-.,' \"]+$") desc = str(desc) @@ -202,7 +150,6 @@ def IsDescriptionValid(desc:str)->bool: if desc == "DEFAULT": return False elif len(desc) > 256: - #print("desc is greater than 256 chars") return False return True @@ -210,18 +157,12 @@ def IsCategoryValid(categories: list)-> bool: """ Check the categories are only [a-zA-Z0-9 ] with 64 max chars. """ - # check if the characters are only [a-zA-Z0-9 ] with maximum 64 chars max - #(careful with the ' and , make sure you test if it fucks the csv up or else) - # if OK return True - #if not : return False pattern = re.compile("^[A-Za-z0-9 ]+$") for category in categories: category.strip() if pattern.fullmatch(category) is None: - #print('Got an empty list or invalid chars') return False elif len(category) > 64: - #print('Category is too long') return False else: return True @@ -230,41 +171,31 @@ def IsNameValid(name: str)->bool: """ Check the parameter name only contains [a-zA-Z0-9 ] and is 64 chars long. """ - # check if the characters are only [a-zA-Z0-9 ] with maximum 64 chars max - #(careful with the ' and , make sure you test if it fucks the csv up or else) - # if OK return True - #if not : return False + try: + name = str(name) + except Exception as e: + return False pattern = re.compile("^[A-Za-z0-9 ]+$") name = name.strip() if (pattern.fullmatch(name) is None): - #print("Got an invalid character or nothing") return False elif len(name) > 64: - #print(f'Got a name length greater than 64. {len(name)}') return False return True - -#def print_colors(s:str, bold=False, is_error = False, default=False): -def print_colors(*args, bold=False, is_error=False, default=False, highlight=False): - """ - Helper function to print with colors - """ - for s in args: +def print_colors(s:str=' ', bold:bool=False, is_error:bool = False, default:bool=False): + """ + Helper function to print with colors + """ if is_error: - print(f"{RED}{s}{RESET}",end='') - elif highlight: - print(f"{ORANGE}{s}{RESET}",end='') + print(f"{RED}{s}{RESET}") elif bold: - print(f"{BOLD_PURPLE}{s}{RESET}",end='') + print(f"{BOLD_PURPLE}{s}{RESET}") elif is_error and bold: - print(f"{BOLD_RED}{s}{RESET}",end='') + print(f"{BOLD_RED}{s}{RESET}") elif default: - print(f'{s}',end='') + print(f'{s}') else: - print(f"{PURPLE}{s}{RESET}",end='') - if s is args[-1]: - print() - + print(f"{PURPLE}{s}{RESET}") diff --git a/updaterepo.sh b/updaterepo.sh new file mode 100755 index 0000000..cd8babd --- /dev/null +++ b/updaterepo.sh @@ -0,0 +1,8 @@ +#!/bin/bash + +#warning, you need to have the .gitignore intact to ignore www/participants/*/** + +git rm -r --cached . +git add . +git commit +torsocks git push diff --git a/www/.known_participants b/www/.known_participants new file mode 100644 index 0000000..574264e --- /dev/null +++ b/www/.known_participants @@ -0,0 +1,3 @@ +lantern.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion +lantern.nowhevi57f4lxxd6db43miewcsgtovakbh6v5f52ci7csc2yjzy5rnid.onion +zhd7yf675dav6njgc7yjwke2u5cq7d5qim2s7xwa2ukxfzubrguqmzyd.onion diff --git a/www/header.php b/www/header.php index 5188615..c5ef228 100644 --- a/www/header.php +++ b/www/header.php @@ -53,7 +53,7 @@ if (!preg_match("~^(?:f|ht)tps?://~i", $data[3])) { //if ((($sensitive == 1) and ($data[4] == "✔️")) or (($sensitive == 0) and ($data[4] != "✔️")) ){ // ONLY display links if (sensitive equals to 1 and sensitiveCOLUMN equals to V) OR (sensitive equals to 0 and sensitiveCOLUMN is NOT equal to V) - if (($data[4] != "✔️") or (($sensitive == 1) and ($data[4] == "✔️"))){ + if (($data[4] != "YES") or (($sensitive == 1) and ($data[4] == "YES"))){ $rowcount++; @@ -67,7 +67,7 @@ if (!preg_match("~^(?:f|ht)tps?://~i", $data[3])) { } echo "" ; // begin the table cell - if($data[4] == "✔️"){ + if($data[4] == "YES"){ echo ' '; // display the link echo $data[2] . ' '; // display the link title and close the a href and first cell, open the second cell echo $data[5] . " "; // OPTIONAL: display the description column - echo $data[7] . " "; // display the status and close the second cell, open the third cell - echo $data[6] . " \n"; // display the score and close the third cell + echo $data[7] . " "; // display the score and close the second cell, open the third cell + if($data[6] == "YES"){ + echo "✔️" ; + }else{ + echo "❌" ; + } + echo " \n"; // display the status and close the third cell } //if ($c == 2){ //} @@ -169,7 +174,7 @@ if (($handle = fopen($csvfile, "r")) !== FALSE) { } } } - echo "

"; + echo 'Display All Links |

'; fclose($handle); } //echo "

" . $resultcount . " Result(s) found.

"; diff --git a/www/participants/lantern.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/banner.png b/www/participants/lantern.nowherejezfoltodf4jiyl6r56jnzintap5vyjlia7fkirfsnfizflqd.onion/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..8e7af7380ab4bf22a26251b78949ea8efe89c0a6 GIT binary patch literal 14119 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 RoqxFc&Cc|cmoZ!}{}0+PYIpzu literal 0 HcmV?d00001 diff --git a/www/participants/zhd7yf675dav6njgc7yjwke2u5cq7d5qim2s7xwa2ukxfzubrguqmzyd.onion/banner.png b/www/participants/zhd7yf675dav6njgc7yjwke2u5cq7d5qim2s7xwa2ukxfzubrguqmzyd.onion/banner.png new file mode 100644 index 0000000000000000000000000000000000000000..e38120f231242306577a3cff18d9cad603f96df0 GIT binary patch literal 20935 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