mirror of
https://github.com/sherlock-project/sherlock
synced 2024-11-26 05:40:19 +00:00
Merge branch 'master' into feature/new_targets
This commit is contained in:
commit
a7f94d6ee6
8 changed files with 189 additions and 87 deletions
7
.github/workflows/pull_request.yml
vendored
7
.github/workflows/pull_request.yml
vendored
|
@ -34,13 +34,12 @@ jobs:
|
|||
- name: Install Dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install flake8 pytest
|
||||
pip install ruff flake8 pytest
|
||||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
||||
- name: Lint With flake8
|
||||
- name: Lint With Ruff
|
||||
run: |
|
||||
# stop the build if there are Python syntax errors or undefined names
|
||||
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||||
|
||||
ruff check . --output-format=github --select=E9,F63,F7,F82
|
||||
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||||
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||||
- name: Sherlock Site Detect Tests
|
||||
|
|
|
@ -854,5 +854,42 @@
|
|||
"url": "https://ebio.gg/{}",
|
||||
"urlMain": "https:/ebio.gg",
|
||||
"username_claimed": "dev"
|
||||
},
|
||||
"metacritic": {
|
||||
"errorMsg": "User not found",
|
||||
"errorType": "message",
|
||||
"regexCheck": "^(?![-_].)[A-Za-z0-9-_]{3,15}$",
|
||||
"url": "https://www.metacritic.com/user/{}",
|
||||
"urlMain": "https://www.metacritic.com/",
|
||||
"username_claimed": "blue"
|
||||
},
|
||||
"Oracle Communities": {
|
||||
"errorType": "status_code",
|
||||
"url": "https://community.oracle.com/people/{}",
|
||||
"urlMain": "https://community.oracle.com",
|
||||
"username_claimed": "dev"
|
||||
},
|
||||
"HexRPG": {
|
||||
"errorMsg": "Error : User ",
|
||||
"errorType": "message",
|
||||
"regexCheck": "^[a-zA-Z0-9_ ]{3,20}$",
|
||||
"url": "https://www.hexrpg.com/userinfo/{}",
|
||||
"urlMain": "https://www.hexrpg.com/",
|
||||
"username_claimed": "blue"
|
||||
},
|
||||
"G2G": {
|
||||
"errorType": "response_url",
|
||||
"errorUrl": "https://www.g2g.com/{}",
|
||||
"regexCheck": "^[A-Za-z][A-Za-z0-9_]{2,11}$",
|
||||
"url": "https://www.g2g.com/{}",
|
||||
"urlMain": "https://www.g2g.com/",
|
||||
"username_claimed": "user"
|
||||
},
|
||||
"BitCoinForum": {
|
||||
"errorMsg": "The user whose profile you are trying to view does not exist.",
|
||||
"errorType": "message",
|
||||
"url": "https://bitcoinforum.com/profile/{}",
|
||||
"urlMain": "https://bitcoinforum.com",
|
||||
"username_claimed": "bitcoinforum.com"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1856,3 +1856,65 @@ As of 2023.12.21, Ebio returns false positives.
|
|||
"username_claimed": "dev"
|
||||
},
|
||||
```
|
||||
|
||||
## HexRPG
|
||||
__2024-04-07 :__ HexRPG behind authentication wall. Unable to check usernames without logging in.
|
||||
```json
|
||||
"HexRPG": {
|
||||
"errorMsg": "Error : User ",
|
||||
"errorType": "message",
|
||||
"regexCheck": "^[a-zA-Z0-9_ ]{3,20}$",
|
||||
"url": "https://www.hexrpg.com/userinfo/{}",
|
||||
"urlMain": "https://www.hexrpg.com/",
|
||||
"username_claimed": "blue"
|
||||
}
|
||||
```
|
||||
|
||||
## Oracle Communities
|
||||
__2024-04-07 :__ Oracle Communities behind authentication wall. Unable to check usernames without logging in.
|
||||
```json
|
||||
"Oracle Communities": {
|
||||
"errorType": "status_code",
|
||||
"url": "https://community.oracle.com/people/{}",
|
||||
"urlMain": "https://community.oracle.com",
|
||||
"username_claimed": "dev"
|
||||
}
|
||||
```
|
||||
|
||||
## Metacritic
|
||||
__2024-04-07 :__ Non-existent users seemingly displayed as real users with no activity. Needs adjustment.
|
||||
```json
|
||||
"metacritic": {
|
||||
"errorMsg": "User not found",
|
||||
"errorType": "message",
|
||||
"regexCheck": "^(?![-_].)[A-Za-z0-9-_]{3,15}$",
|
||||
"url": "https://www.metacritic.com/user/{}",
|
||||
"urlMain": "https://www.metacritic.com/",
|
||||
"username_claimed": "blue"
|
||||
}
|
||||
```
|
||||
|
||||
## G2G
|
||||
__2024-04-10 :__ Seems to be loading profiles with some wierd javascript setup that sherlock doesn't like, leading to difficult to control false positives
|
||||
```json
|
||||
"G2G": {
|
||||
"errorType": "response_url",
|
||||
"errorUrl": "https://www.g2g.com/{}",
|
||||
"regexCheck": "^[A-Za-z][A-Za-z0-9_]{2,11}$",
|
||||
"url": "https://www.g2g.com/{}",
|
||||
"urlMain": "https://www.g2g.com/",
|
||||
"username_claimed": "user"
|
||||
}
|
||||
```
|
||||
|
||||
## Bitcoin Forum
|
||||
__2024-04-24 :__ BCF seems to have gone defunct. Uncertain.
|
||||
```json
|
||||
"BitCoinForum": {
|
||||
"errorMsg": "The user whose profile you are trying to view does not exist.",
|
||||
"errorType": "message",
|
||||
"url": "https://bitcoinforum.com/profile/{}",
|
||||
"urlMain": "https://bitcoinforum.com",
|
||||
"username_claimed": "bitcoinforum.com"
|
||||
}
|
||||
```
|
|
@ -239,6 +239,15 @@ class QueryNotifyPrint(QueryNotify):
|
|||
Fore.GREEN + f" {self.result.site_name}:" +
|
||||
Fore.YELLOW + f" {msg}")
|
||||
|
||||
elif result.status == QueryStatus.WAF:
|
||||
if self.print_all:
|
||||
print(Style.BRIGHT + Fore.WHITE + "[" +
|
||||
Fore.RED + "-" +
|
||||
Fore.WHITE + "]" +
|
||||
Fore.GREEN + f" {self.result.site_name}:" +
|
||||
Fore.RED + " Blocked by bot detection" +
|
||||
Fore.YELLOW + " (proxy may help)")
|
||||
|
||||
else:
|
||||
# It should be impossible to ever get here...
|
||||
raise ValueError(
|
||||
|
|
|
@ -148,15 +148,17 @@
|
|||
},
|
||||
"Archive of Our Own": {
|
||||
"errorType": "status_code",
|
||||
"regexCheck": "^[^.]*?$",
|
||||
"url": "https://archiveofourown.org/users/{}",
|
||||
"urlMain": "https://archiveofourown.org/",
|
||||
"username_claimed": "test"
|
||||
},
|
||||
"Archive.org": {
|
||||
"errorMsg": "cannot find account",
|
||||
"errorMsg": "could not fetch an account with user item identifier",
|
||||
"errorType": "message",
|
||||
"url": "https://archive.org/details/@{}",
|
||||
"urlMain": "https://archive.org",
|
||||
"urlProbe": "https://archive.org/details/@{}?noscript=true",
|
||||
"username_claimed": "blue"
|
||||
},
|
||||
"ArtStation": {
|
||||
|
@ -270,13 +272,6 @@
|
|||
"urlMain": "https://bitbucket.org/",
|
||||
"username_claimed": "white"
|
||||
},
|
||||
"BitCoinForum": {
|
||||
"errorMsg": "The user whose profile you are trying to view does not exist.",
|
||||
"errorType": "message",
|
||||
"url": "https://bitcoinforum.com/profile/{}",
|
||||
"urlMain": "https://bitcoinforum.com",
|
||||
"username_claimed": "bitcoinforum.com"
|
||||
},
|
||||
"Bitwarden Forum": {
|
||||
"errorType": "status_code",
|
||||
"regexCheck": "^(?![.-])[a-zA-Z0-9_.-]{3,20}$",
|
||||
|
@ -332,8 +327,8 @@
|
|||
"username_claimed": "blue"
|
||||
},
|
||||
"CGTrader": {
|
||||
"errorMsg": "3D models for CG digital design and artwork",
|
||||
"errorType": "message",
|
||||
"errorType": "status_code",
|
||||
"regexCheck": "^[^.]*?$",
|
||||
"url": "https://www.cgtrader.com/{}",
|
||||
"urlMain": "https://www.cgtrader.com",
|
||||
"username_claimed": "blue"
|
||||
|
@ -341,9 +336,10 @@
|
|||
"CNET": {
|
||||
"errorMsg": "null null - CNET",
|
||||
"errorType": "message",
|
||||
"regexCheck": "^[a-z].*$",
|
||||
"url": "https://www.cnet.com/profiles/{}/",
|
||||
"urlMain": "https://www.cnet.com/",
|
||||
"username_claimed": "elliottcnet"
|
||||
"username_claimed": "melliott"
|
||||
},
|
||||
"CSSBattle": {
|
||||
"errorType": "status_code",
|
||||
|
@ -525,8 +521,8 @@
|
|||
"username_claimed": "blue"
|
||||
},
|
||||
"Contently": {
|
||||
"errorMsg": "<title>Leading Content Marketing Platform | Contently</title>",
|
||||
"errorType": "message",
|
||||
"errorType": "response_url",
|
||||
"errorUrl": "https://contently.com",
|
||||
"regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$",
|
||||
"url": "https://{}.contently.com/",
|
||||
"urlMain": "https://contently.com/",
|
||||
|
@ -662,6 +658,7 @@
|
|||
},
|
||||
"Eintracht Frankfurt Forum": {
|
||||
"errorType": "status_code",
|
||||
"regexCheck": "^[^.]*?$",
|
||||
"url": "https://community.eintracht.de/fans/{}",
|
||||
"urlMain": "https://community.eintracht.de/",
|
||||
"username_claimed": "mmammu"
|
||||
|
@ -811,14 +808,6 @@
|
|||
"urlMain": "https://freesound.org/",
|
||||
"username_claimed": "blue"
|
||||
},
|
||||
"G2G": {
|
||||
"errorType": "response_url",
|
||||
"errorUrl": "https://www.g2g.com/{}",
|
||||
"regexCheck": "^[A-Za-z][A-Za-z0-9_]{2,11}$",
|
||||
"url": "https://www.g2g.com/{}",
|
||||
"urlMain": "https://www.g2g.com/",
|
||||
"username_claimed": "user"
|
||||
},
|
||||
"GNOME VCS": {
|
||||
"errorType": "response_url",
|
||||
"errorUrl": "https://gitlab.gnome.org/{}",
|
||||
|
@ -841,20 +830,21 @@
|
|||
"username_claimed": "blue"
|
||||
},
|
||||
"GeeksforGeeks": {
|
||||
"errorMsg": "<title>Login GeeksforGeeks</title>",
|
||||
"errorType": "message",
|
||||
"errorType": "status_code",
|
||||
"url": "https://auth.geeksforgeeks.org/user/{}",
|
||||
"urlMain": "https://www.geeksforgeeks.org/",
|
||||
"username_claimed": "adam"
|
||||
},
|
||||
"Genius (Artists)": {
|
||||
"errorType": "status_code",
|
||||
"regexCheck": "^[a-zA-Z0-9]{5,50}$",
|
||||
"url": "https://genius.com/artists/{}",
|
||||
"urlMain": "https://genius.com/",
|
||||
"username_claimed": "genius"
|
||||
},
|
||||
"Genius (Users)": {
|
||||
"errorType": "status_code",
|
||||
"regexCheck": "^[a-zA-Z0-9]*?$",
|
||||
"url": "https://genius.com/{}",
|
||||
"urlMain": "https://genius.com/",
|
||||
"username_claimed": "genius"
|
||||
|
@ -948,6 +938,7 @@
|
|||
"Gumroad": {
|
||||
"errorMsg": "Page not found (404) - Gumroad",
|
||||
"errorType": "message",
|
||||
"regexCheck": "^[^.]*?$",
|
||||
"url": "https://www.gumroad.com/{}",
|
||||
"urlMain": "https://www.gumroad.com/",
|
||||
"username_claimed": "blue"
|
||||
|
@ -958,14 +949,6 @@
|
|||
"urlMain": "https://www.gutefrage.net/",
|
||||
"username_claimed": "gutefrage"
|
||||
},
|
||||
"HEXRPG": {
|
||||
"errorMsg": "Error : User ",
|
||||
"errorType": "message",
|
||||
"regexCheck": "^[a-zA-Z0-9_ ]{3,20}$",
|
||||
"url": "https://www.hexrpg.com/userinfo/{}",
|
||||
"urlMain": "https://www.hexrpg.com/",
|
||||
"username_claimed": "blue"
|
||||
},
|
||||
"HackTheBox": {
|
||||
"errorType": "status_code",
|
||||
"url": "https://forum.hackthebox.eu/profile/{}",
|
||||
|
@ -994,7 +977,11 @@
|
|||
"username_claimed": "naveennamani877"
|
||||
},
|
||||
"HackerNews": {
|
||||
"errorMsg": "No such user.",
|
||||
"::::README::::": "First errMsg invalid, second errMsg rate limited. Not ideal. Adjust for better rate limit filtering.",
|
||||
"errorMsg": [
|
||||
"No such user.",
|
||||
"Sorry."
|
||||
],
|
||||
"errorType": "message",
|
||||
"url": "https://news.ycombinator.com/user?id={}",
|
||||
"urlMain": "https://news.ycombinator.com/",
|
||||
|
@ -1010,6 +997,7 @@
|
|||
"HackerRank": {
|
||||
"errorMsg": "Something went wrong",
|
||||
"errorType": "message",
|
||||
"regexCheck": "^[^.]*?$",
|
||||
"url": "https://hackerrank.com/{}",
|
||||
"urlMain": "https://hackerrank.com/",
|
||||
"username_claimed": "satznova"
|
||||
|
@ -1073,8 +1061,7 @@
|
|||
"username_claimed": "Micheal"
|
||||
},
|
||||
"IFTTT": {
|
||||
"errorMsg": "The requested page or file does not exist",
|
||||
"errorType": "message",
|
||||
"errorType": "status_code",
|
||||
"regexCheck": "^[A-Za-z0-9]{3,35}$",
|
||||
"url": "https://www.ifttt.com/p/{}",
|
||||
"urlMain": "https://www.ifttt.com/",
|
||||
|
@ -1212,8 +1199,11 @@
|
|||
"username_claimed": "blue"
|
||||
},
|
||||
"Kongregate": {
|
||||
"errorMsg": "Sorry, no account with that name was found.",
|
||||
"errorType": "message",
|
||||
"errorType": "status_code",
|
||||
"headers": {
|
||||
"Accept": "text/html",
|
||||
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/116.0"
|
||||
},
|
||||
"regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$",
|
||||
"url": "https://www.kongregate.com/accounts/{}",
|
||||
"urlMain": "https://www.kongregate.com/",
|
||||
|
@ -1258,7 +1248,8 @@
|
|||
"username_claimed": "blue"
|
||||
},
|
||||
"Linktree": {
|
||||
"errorType": "status_code",
|
||||
"errorMsg": "\"statusCode\":404",
|
||||
"errorType": "message",
|
||||
"url": "https://linktr.ee/{}",
|
||||
"urlMain": "https://linktr.ee/",
|
||||
"username_claimed": "anne"
|
||||
|
@ -1338,13 +1329,6 @@
|
|||
"urlProbe": "https://api.mixcloud.com/{}/",
|
||||
"username_claimed": "jenny"
|
||||
},
|
||||
"Modelhub": {
|
||||
"errorType": "status_code",
|
||||
"isNSFW": true,
|
||||
"url": "https://www.modelhub.com/{}/videos",
|
||||
"urlMain": "https://www.modelhub.com/",
|
||||
"username_claimed": "secretcrush"
|
||||
},
|
||||
"Monkeytype": {
|
||||
"errorType": "status_code",
|
||||
"url": "https://monkeytype.com/profile/{}",
|
||||
|
@ -1487,6 +1471,7 @@
|
|||
},
|
||||
"OpenStreetMap": {
|
||||
"errorType": "status_code",
|
||||
"regexCheck": "^[^.]*?$",
|
||||
"url": "https://www.openstreetmap.org/user/{}",
|
||||
"urlMain": "https://www.openstreetmap.org/",
|
||||
"username_claimed": "blue"
|
||||
|
@ -1497,12 +1482,6 @@
|
|||
"urlMain": "https://opensource.com/",
|
||||
"username_claimed": "red"
|
||||
},
|
||||
"Oracle Community": {
|
||||
"errorType": "status_code",
|
||||
"url": "https://community.oracle.com/people/{}",
|
||||
"urlMain": "https://community.oracle.com",
|
||||
"username_claimed": "dev"
|
||||
},
|
||||
"OurDJTalk": {
|
||||
"errorMsg": "The specified member cannot be found",
|
||||
"errorType": "message",
|
||||
|
@ -1566,6 +1545,7 @@
|
|||
},
|
||||
"Pinkbike": {
|
||||
"errorType": "status_code",
|
||||
"regexCheck": "^[^.]*?$",
|
||||
"url": "https://www.pinkbike.com/u/{}/",
|
||||
"urlMain": "https://www.pinkbike.com/",
|
||||
"username_claimed": "blue"
|
||||
|
@ -1604,8 +1584,8 @@
|
|||
"username_claimed": "swiftstickler"
|
||||
},
|
||||
"Polymart": {
|
||||
"errorMsg": "Looks like we couldn't find this user. Sorry!",
|
||||
"errorType": "message",
|
||||
"errorType": "response_url",
|
||||
"errorUrl": "https://polymart.org/user/-1",
|
||||
"url": "https://polymart.org/user/{}",
|
||||
"urlMain": "https://polymart.org/",
|
||||
"username_claimed": "craciu25yt"
|
||||
|
@ -1826,6 +1806,7 @@
|
|||
"username_claimed": "blue"
|
||||
},
|
||||
"Slides": {
|
||||
"errorCode": 204,
|
||||
"errorType": "status_code",
|
||||
"url": "https://slides.com/{}",
|
||||
"urlMain": "https://slides.com/",
|
||||
|
@ -1892,6 +1873,7 @@
|
|||
},
|
||||
"Splits.io": {
|
||||
"errorType": "status_code",
|
||||
"regexCheck": "^[^.]*?$",
|
||||
"url": "https://splits.io/users/{}",
|
||||
"urlMain": "https://splits.io",
|
||||
"username_claimed": "cambosteve"
|
||||
|
@ -1940,6 +1922,7 @@
|
|||
"Strava": {
|
||||
"errorMsg": "Strava | Running, Cycling & Hiking App - Train, Track & Share",
|
||||
"errorType": "message",
|
||||
"regexCheck": "^[^.]*?$",
|
||||
"url": "https://www.strava.com/athletes/{}",
|
||||
"urlMain": "https://www.strava.com/",
|
||||
"username_claimed": "blue"
|
||||
|
@ -1972,12 +1955,15 @@
|
|||
"username_claimed": "traktrain"
|
||||
},
|
||||
"Telegram": {
|
||||
"errorMsg": "<meta property=\"og:description\" content=\"\">",
|
||||
"errorMsg": [
|
||||
"<title>Telegram Messenger</title>",
|
||||
"If you have <strong>Telegram</strong>, you can contact <a class=\"tgme_username_link\" href=\"tg://resolve?domain="
|
||||
],
|
||||
"errorType": "message",
|
||||
"regexCheck": "^[a-zA-Z0-9_]{5,32}[^_]$",
|
||||
"regexCheck": "^[a-zA-Z0-9_]{3,32}[^_]$",
|
||||
"url": "https://t.me/{}",
|
||||
"urlMain": "https://t.me/",
|
||||
"username_claimed": "roopeshvs"
|
||||
"username_claimed": "blue"
|
||||
},
|
||||
"Tellonym.me": {
|
||||
"errorType": "status_code",
|
||||
|
@ -2282,7 +2268,13 @@
|
|||
"username_claimed": "blue"
|
||||
},
|
||||
"YandexMusic": {
|
||||
"errorType": "status_code",
|
||||
"::::README::::": "The first and third errorMsg relate to geo-restrictions and bot detection/captchas.",
|
||||
"errorMsg": [
|
||||
"\u041e\u0448\u0438\u0431\u043a\u0430 404",
|
||||
"<meta name=\"description\" content=\"\u041e\u0442\u043a\u0440\u044b\u0432\u0430\u0439\u0442\u0435 \u043d\u043e\u0432\u0443\u044e \u043c\u0443\u0437\u044b\u043a\u0443 \u043a\u0430\u0436\u0434\u044b\u0439 \u0434\u0435\u043d\u044c.",
|
||||
"<input type=\"submit\" class=\"CheckboxCaptcha-Button\""
|
||||
],
|
||||
"errorType": "message",
|
||||
"url": "https://music.yandex/users/{}/playlists",
|
||||
"urlMain": "https://music.yandex",
|
||||
"username_claimed": "ya.playlist"
|
||||
|
@ -2394,6 +2386,7 @@
|
|||
},
|
||||
"eintracht": {
|
||||
"errorType": "status_code",
|
||||
"regexCheck": "^[^.]*?$",
|
||||
"url": "https://community.eintracht.de/fans/{}",
|
||||
"urlMain": "https://eintracht.de",
|
||||
"username_claimed": "blue"
|
||||
|
@ -2497,10 +2490,11 @@
|
|||
"username_claimed": "blue"
|
||||
},
|
||||
"jeuxvideo": {
|
||||
"errorMsg": "Vous \u00eates",
|
||||
"errorType": "message",
|
||||
"url": "http://www.jeuxvideo.com/profil/{}?mode=infos",
|
||||
"urlMain": "http://www.jeuxvideo.com",
|
||||
"errorType": "status_code",
|
||||
"request_method": "GET",
|
||||
"url": "https://www.jeuxvideo.com/profil/{}",
|
||||
"urlMain": "https://www.jeuxvideo.com",
|
||||
"urlProbe": "https://www.jeuxvideo.com/profil/{}?mode=infos",
|
||||
"username_claimed": "adam"
|
||||
},
|
||||
"kofi": {
|
||||
|
@ -2571,14 +2565,6 @@
|
|||
"urlMain": "https://www.mercadolivre.com.br",
|
||||
"username_claimed": "blue"
|
||||
},
|
||||
"metacritic": {
|
||||
"errorMsg": "User not found",
|
||||
"errorType": "message",
|
||||
"regexCheck": "^(?![-_].)[A-Za-z0-9-_]{3,15}$",
|
||||
"url": "https://www.metacritic.com/user/{}",
|
||||
"urlMain": "https://www.metacritic.com/",
|
||||
"username_claimed": "blue"
|
||||
},
|
||||
"minds": {
|
||||
"errorMsg": "\"valid\":true",
|
||||
"errorType": "message",
|
||||
|
@ -2731,6 +2717,7 @@
|
|||
"isNSFW": true,
|
||||
"url": "https://xhamster.com/users/{}",
|
||||
"urlMain": "https://xhamster.com",
|
||||
"urlProbe": "https://xhamster.com/users/{}?old_browser=true",
|
||||
"username_claimed": "blue"
|
||||
},
|
||||
"znanylekarz.pl": {
|
||||
|
|
|
@ -14,6 +14,7 @@ class QueryStatus(Enum):
|
|||
AVAILABLE = "Available" # Username Not Detected
|
||||
UNKNOWN = "Unknown" # Error Occurred While Trying To Detect Username
|
||||
ILLEGAL = "Illegal" # Username Not Allowable For This Site
|
||||
WAF = "WAF" # Request blocked by WAF (i.e. Cloudflare)
|
||||
|
||||
def __str__(self):
|
||||
"""Convert Object To String.
|
||||
|
|
|
@ -232,7 +232,7 @@ def sherlock(
|
|||
# A user agent is needed because some sites don't return the correct
|
||||
# information since they think that we are bots (Which we actually are...)
|
||||
headers = {
|
||||
"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:55.0) Gecko/20100101 Firefox/55.0",
|
||||
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64; rv:109.0) Gecko/20100101 Firefox/116.0",
|
||||
}
|
||||
|
||||
if "headers" in net_info:
|
||||
|
@ -351,7 +351,6 @@ def sherlock(
|
|||
|
||||
# Get the expected error type
|
||||
error_type = net_info["errorType"]
|
||||
error_code = net_info.get("errorCode")
|
||||
|
||||
# Retrieve future and ensure it has finished
|
||||
future = net_info["request_future"]
|
||||
|
@ -378,9 +377,20 @@ def sherlock(
|
|||
query_status = QueryStatus.UNKNOWN
|
||||
error_context = None
|
||||
|
||||
# As WAFs advance and evolve, they will occasionally block Sherlock and lead to false positives
|
||||
# and negatives. Fingerprints should be added here to filter results that fail to bypass WAFs.
|
||||
# Fingerprints should be highly targetted. Comment at the end of each fingerprint to indicate target and date.
|
||||
WAFHitMsgs = [
|
||||
'.loading-spinner{visibility:hidden}body.no-js .challenge-running{display:none}body.dark{background-color:#222;color:#d9d9d9}body.dark a{color:#fff}body.dark a:hover{color:#ee730a;text-decoration:underline}body.dark .lds-ring div{border-color:#999 transparent transparent}body.dark .font-red{color:#b20f03}body.dark .big-button,body.dark .pow-button{background-color:#4693ff;color:#1d1d1d}body.dark #challenge-success-text{background-image:url(data:image/svg+xml;base64,', # 2024-04-08 Cloudflare
|
||||
'{return l.onPageView}}),Object.defineProperty(r,"perimeterxIdentifiers",{enumerable:' # 2024-04-09 PerimeterX / Human Security
|
||||
]
|
||||
|
||||
if error_text is not None:
|
||||
error_context = error_text
|
||||
|
||||
elif any(hitMsg in r.text for hitMsg in WAFHitMsgs):
|
||||
query_status = QueryStatus.WAF
|
||||
|
||||
elif error_type == "message":
|
||||
# error_flag True denotes no error found in the HTML
|
||||
# error_flag False denotes error found in the HTML
|
||||
|
@ -407,13 +417,16 @@ def sherlock(
|
|||
else:
|
||||
query_status = QueryStatus.AVAILABLE
|
||||
elif error_type == "status_code":
|
||||
# Checks if the Status Code is equal to the optional "errorCode" given in 'data.json'
|
||||
if error_code == r.status_code:
|
||||
error_codes = net_info.get("errorCode")
|
||||
query_status = QueryStatus.CLAIMED
|
||||
|
||||
# Type consistency, allowing for both singlets and lists in manifest
|
||||
if isinstance(error_codes, int):
|
||||
error_codes = [error_codes]
|
||||
|
||||
if error_codes is not None and r.status_code in error_codes:
|
||||
query_status = QueryStatus.AVAILABLE
|
||||
# Checks if the status code of the response is 2XX
|
||||
elif not r.status_code >= 300 or r.status_code < 200:
|
||||
query_status = QueryStatus.CLAIMED
|
||||
else:
|
||||
elif r.status_code >= 300 or r.status_code < 200:
|
||||
query_status = QueryStatus.AVAILABLE
|
||||
elif error_type == "response_url":
|
||||
# For this detection method, we have turned off the redirect.
|
||||
|
|
8
sites.md
8
sites.md
|
@ -38,7 +38,6 @@
|
|||
1. ![](https://www.google.com/s2/favicons?domain=https://www.bikemap.net/) [Bikemap](https://www.bikemap.net/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://forum.dangerousthings.com/) [BioHacking](https://forum.dangerousthings.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://bitbucket.org/) [BitBucket](https://bitbucket.org/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://bitcoinforum.com) [BitCoinForum](https://bitcoinforum.com)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://bitwarden.com/) [Bitwarden Forum](https://bitwarden.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.blogger.com/) [Blogger](https://www.blogger.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://bodyspace.bodybuilding.com/) [BodyBuilding](https://bodyspace.bodybuilding.com/)
|
||||
|
@ -117,7 +116,6 @@
|
|||
1. ![](https://www.google.com/s2/favicons?domain=https://freelance.habr.com/) [Freelance.habr](https://freelance.habr.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.freelancer.com/) [Freelancer](https://www.freelancer.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://freesound.org/) [Freesound](https://freesound.org/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.g2g.com/) [G2G](https://www.g2g.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://gitlab.gnome.org/) [GNOME VCS](https://gitlab.gnome.org/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.gaiaonline.com/) [GaiaOnline](https://www.gaiaonline.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.gamespot.com/) [Gamespot](https://www.gamespot.com/)
|
||||
|
@ -139,7 +137,6 @@
|
|||
1. ![](https://www.google.com/s2/favicons?domain=http://en.gravatar.com/) [Gravatar](http://en.gravatar.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.gumroad.com/) [Gumroad](https://www.gumroad.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.gutefrage.net/) [Gutefrage](https://www.gutefrage.net/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.hexrpg.com/) [HEXRPG](https://www.hexrpg.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://forum.hackthebox.eu/) [HackTheBox](https://forum.hackthebox.eu/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://hackaday.io/) [Hackaday](https://hackaday.io/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://hackenproof.com/) [HackenProof (Hackers)](https://hackenproof.com/)
|
||||
|
@ -194,7 +191,6 @@
|
|||
1. ![](https://www.google.com/s2/favicons?domain=https://www.memrise.com/) [Memrise](https://www.memrise.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://minecraft.net/) [Minecraft](https://minecraft.net/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.mixcloud.com/) [MixCloud](https://www.mixcloud.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.modelhub.com/) [Modelhub](https://www.modelhub.com/) **(NSFW)**
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://monkeytype.com/) [Monkeytype](https://monkeytype.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://motherless.com/) [Motherless](https://motherless.com/) **(NSFW)**
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.motorradfrage.net/) [Motorradfrage](https://www.motorradfrage.net/)
|
||||
|
@ -218,7 +214,6 @@
|
|||
1. ![](https://www.google.com/s2/favicons?domain=https://ogu.gg/) [OGUsers](https://ogu.gg/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.openstreetmap.org/) [OpenStreetMap](https://www.openstreetmap.org/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://opensource.com/) [Opensource](https://opensource.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://community.oracle.com) [Oracle Community](https://community.oracle.com)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://ourdjtalk.com/) [OurDJTalk](https://ourdjtalk.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://pcgamer.com) [PCGamer](https://pcgamer.com)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://psnprofiles.com/) [PSNProfiles.com](https://psnprofiles.com/)
|
||||
|
@ -366,7 +361,7 @@
|
|||
1. ![](https://www.google.com/s2/favicons?domain=https://www.interpals.net/) [interpals](https://www.interpals.net/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://irecommend.ru/) [irecommend](https://irecommend.ru/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://jbzd.com.pl/) [jbzd.com.pl](https://jbzd.com.pl/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=http://www.jeuxvideo.com) [jeuxvideo](http://www.jeuxvideo.com)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.jeuxvideo.com) [jeuxvideo](https://www.jeuxvideo.com)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://ko-fi.com) [kofi](https://ko-fi.com)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.kwork.ru/) [kwork](https://www.kwork.ru/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://lab.pentestit.ru/) [labpentestit](https://lab.pentestit.ru/)
|
||||
|
@ -378,7 +373,6 @@
|
|||
1. ![](https://www.google.com/s2/favicons?domain=https://mastodon.xyz/) [mastodon.technology](https://mastodon.xyz/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://mastodon.xyz/) [mastodon.xyz](https://mastodon.xyz/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.mercadolivre.com.br) [mercadolivre](https://www.mercadolivre.com.br)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.metacritic.com/) [metacritic](https://www.metacritic.com/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://www.minds.com) [minds](https://www.minds.com)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://moikrug.ru/) [moikrug](https://moikrug.ru/)
|
||||
1. ![](https://www.google.com/s2/favicons?domain=https://mstdn.io/) [mstdn.io](https://mstdn.io/)
|
||||
|
|
Loading…
Reference in a new issue