Merge branch 'sherlock-project:master' into master

pull/2038/head
Gowtham K M 2 weeks ago committed by GitHub
commit e99e2b11d7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -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

@ -40,7 +40,7 @@ $ python3 -m pip install -r requirements.txt
```console
$ python3 sherlock --help
usage: sherlock [-h] [--version] [--verbose] [--folderoutput FOLDEROUTPUT]
[--output OUTPUT] [--tor] [--unique-tor] [--csv]
[--output OUTPUT] [--tor] [--unique-tor] [--csv] [--xlsx]
[--site SITE_NAME] [--proxy PROXY_URL] [--json JSON_FILE]
[--timeout TIMEOUT] [--print-all] [--print-found] [--no-color]
[--browse] [--local] [--nsfw]
@ -70,7 +70,7 @@ optional arguments:
path.
--csv Create Comma-Separated Values (CSV) File.
--xlsx Create the standard file for the modern Microsoft Excel
spreadsheet (xslx).
spreadsheet (xlsx).
--site SITE_NAME Limit analysis to just the listed sites. Add multiple options to
specify more than one site.
--proxy PROXY_URL, -p PROXY_URL
@ -170,9 +170,13 @@ If some sites are failing due to connection problems (site is down, in maintenan
you can exclude them from tests by creating a `tests/.excluded_sites` file with a
list of sites to ignore (one site name per line).
## Stargazers over time
## Star History
[![Stargazers over time](https://starchart.cc/sherlock-project/sherlock.svg)](https://starchart.cc/sherlock-project/sherlock)
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=sherlock-project/sherlock&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=sherlock-project/sherlock&type=Date" />
<img alt="Sherlock Project Star History Chart" src="https://api.star-history.com/svg?repos=sherlock-project/sherlock&type=Date" />
</picture>
## License

@ -492,13 +492,6 @@
"urlMain": "https://www.cloob.com/",
"username_claimed": "blue"
},
"1337x": {
"errorMsg": "Bad Username",
"errorType": "message",
"url": "https://1337x.to/user/{}/",
"urlMain": "https://1337x.to",
"username_claimed": "TheMorozko"
},
"TM-Ladder": {
"errorMsg": "player unknown or invalid",
"errorType": "message",
@ -763,14 +756,6 @@
"urlProbe": "https://onlyfans.com/api2/v2/users/{}",
"username_claimed": "theemilylynne"
},
"Instagram": {
"errorMsg": "Nothing found!",
"errorType": "message",
"url": "https://www.instagram.com/{}",
"urlMain": "https://www.instagram.com/",
"urlProbe": "https://www.picuki.com/profile/{}",
"username_claimed": "blue"
},
"OK": {
"errorType": "status_code",
"regexCheck": "^[a-zA-Z][a-zA-Z0-9_.-]*$",
@ -869,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"
}
}

@ -424,7 +424,7 @@ Good-bye [Google Plus](https://en.wikipedia.org/wiki/Google%2B)...
## InsaneJournal
As of 2020-02-23, InsaneJournal returns false positive, when providing a username which contains a period.
Since we were not able to find the critera for a valid username, the best thing to do now is to remove it.
Since we were not able to find the criteria for a valid username, the best thing to do now is to remove it.
```json
"InsaneJournal": {
@ -625,7 +625,7 @@ removed
## Coderwall
As of 2020-07-06, Coderwall returns false positives when checking for an username which contains a period.
I have tried to find out what Coderwall's criteria is for a valid username, but unfortunetly I have not been able to
I have tried to find out what Coderwall's criteria is for a valid username, but unfortunately I have not been able to
find it and because of this, the best thing we can do now is to remove it.
```json
"Coderwall": {
@ -1178,19 +1178,6 @@ As of 2021-10-25, Cloob seems to be down and their site is not responding.
}
```
### 1337x
As of 2021-11-21, 1337x seems to be down causing false positives.
```json
"1337x": {
"errorMsg": "Bad Username",
"errorType": "message",
"url": "https://1337x.to/user/{}/",
"urlMain": "https://1337x.to",
"username_claimed": "TheMorozko",
"username_unclaimed": "noonewouldeverusethis7"
}
```
### TM-Ladder
As of 2021-11-30, TM-Ladder is returning false positives due to rate limits.
@ -1700,20 +1687,6 @@ As of 2023.04.20, OnlyFans returns false negatives on checking usernames with th
}
```
## Instagram
As of 2023.04.21, Instagram returns false positives as picuki.com was used to query for usernames but they now user Cloudflare
```json
"Instagram": {
"errorMsg": "Nothing found!",
"errorType": "message",
"url": "https://www.instagram.com/{}",
"urlMain": "https://www.instagram.com/",
"urlProbe": "https://www.picuki.com/profile/{}",
"username_claimed": "blue"
}
```
## OK
As of 2023.04.21, Ok.ru returns false positives
```json
@ -1827,7 +1800,7 @@ As of 2023.08.29, GunsAndAmmo responds with 404 from time to time
```
## TikTok
As of 2023.12.21, TikTok returns false positives. This is because the webpage returns a somewhat blank page. This prevents us from being able to check for the existance of usernames. Proxitok does not work either.
As of 2023.12.21, TikTok returns false positives. This is because the webpage returns a somewhat blank page. This prevents us from being able to check for the existence of usernames. Proxitok does not work either.
```json
"TikTok": {
@ -1851,7 +1824,7 @@ As of 2023.12.21, Lolchess returns false positives.
```
## Virgool
As of 2023.12.21, Lolchess returns false positives.
As of 2023.12.21, Virgool returns false positives.
```json
"Virgool": {
"errorMsg": "\u06f4\u06f0\u06f4",
@ -1863,7 +1836,7 @@ As of 2023.12.21, Lolchess returns false positives.
```
## Whonix Forum
As of 2023.12.21, Lolchess returns false positives.
As of 2023.12.21, Whonix Forum returns false positives.
```json
"Whonix Forum": {
"errorType": "status_code",
@ -1874,7 +1847,7 @@ As of 2023.12.21, Lolchess returns false positives.
```
## Ebio
As of 2023.12.21, Lolchess returns false positives.
As of 2023.12.21, Ebio returns false positives.
```json
"ebio.gg": {
"errorType": "status_code",
@ -1882,4 +1855,66 @@ As of 2023.12.21, Lolchess returns false positives.
"urlMain": "https:/ebio.gg",
"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"
}
```

@ -15,7 +15,7 @@ if __name__ == "__main__":
python_version = sys.version.split()[0]
if sys.version_info < (3, 6):
print("Sherlock requires Python 3.6+\nYou are using Python %s, which is not supported by Sherlock" % (python_version))
print(f"Sherlock requires Python 3.6+\nYou are using Python {python_version}, which is not supported by Sherlock.")
sys.exit(1)
import sherlock

@ -238,6 +238,15 @@ class QueryNotifyPrint(QueryNotify):
Fore.WHITE + "]" +
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...

@ -1,4 +1,15 @@
{
"1337x": {
"errorMsg": [
"<title>Error something went wrong.</title>",
"<head><title>404 Not Found</title></head>"
],
"errorType": "message",
"regexCheck": "^[A-Za-z0-9]{4,12}$",
"url": "https://www.1337x.to/user/{}/",
"urlMain": "https://www.1337x.to/",
"username_claimed": "FitGirl"
},
"2Dimensions": {
"errorType": "status_code",
"url": "https://2Dimensions.com/a/{}",
@ -137,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": {
@ -266,13 +279,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}$",
@ -328,8 +334,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"
@ -337,9 +343,16 @@
"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",
"url": "https://cssbattle.dev/player/{}",
"urlMain": "https://cssbattle.dev",
"username_claimed": "beo"
},
"CTAN": {
"errorType": "status_code",
@ -448,6 +461,12 @@
"urlMain": "https://codesnippets.fandom.com",
"username_claimed": "bob"
},
"Codeberg": {
"errorType": "status_code",
"url": "https://codeberg.org/{}",
"urlMain": "https://codeberg.org/",
"username_claimed": "blue"
},
"Codecademy": {
"errorMsg": "This profile could not be found",
"errorType": "message",
@ -509,8 +528,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/",
@ -556,6 +575,15 @@
"urlMain": "https://cults3d.com/en",
"username_claimed": "brown"
},
"CyberDefenders": {
"errorMsg": "<title>Online Cyber Security Blue Team Training - CyberDefenders</title>",
"errorType": "message",
"regexCheck": "^[^\\/:*?\"<>|@]{3,50}$",
"request_method": "GET",
"url": "https://cyberdefenders.org/p/{}",
"urlMain": "https://cyberdefenders.org/",
"username_claimed": "mlohn"
},
"DEV Community": {
"errorType": "status_code",
"regexCheck": "^[a-zA-Z][a-zA-Z0-9_-]*$",
@ -637,6 +665,7 @@
},
"Eintracht Frankfurt Forum": {
"errorType": "status_code",
"regexCheck": "^[^.]*?$",
"url": "https://community.eintracht.de/fans/{}",
"urlMain": "https://community.eintracht.de/",
"username_claimed": "mmammu"
@ -786,14 +815,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/{}",
@ -816,20 +837,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"
@ -923,6 +945,7 @@
"Gumroad": {
"errorMsg": "Page not found (404) - Gumroad",
"errorType": "message",
"regexCheck": "^[^.]*?$",
"url": "https://www.gumroad.com/{}",
"urlMain": "https://www.gumroad.com/",
"username_claimed": "blue"
@ -933,14 +956,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/{}",
@ -953,6 +968,14 @@
"urlMain": "https://hackaday.io/",
"username_claimed": "adam"
},
"HackenProof (Hackers)": {
"errorMsg": "<title>Web3\u2019s Largest Ethical Hackers Community | HackenProof</title>",
"errorType": "message",
"regexCheck": "^[\\w-]{,34}$",
"url": "https://hackenproof.com/hackers/{}",
"urlMain": "https://hackenproof.com/",
"username_claimed": "blazezaria"
},
"HackerEarth": {
"errorMsg": "404. URL not found.",
"errorType": "message",
@ -961,7 +984,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/",
@ -977,6 +1004,7 @@
"HackerRank": {
"errorMsg": "Something went wrong",
"errorType": "message",
"regexCheck": "^[^.]*?$",
"url": "https://hackerrank.com/{}",
"urlMain": "https://hackerrank.com/",
"username_claimed": "satznova"
@ -1033,6 +1061,13 @@
"urlMain": "https://hubski.com/",
"username_claimed": "blue"
},
"HudsonRock": {
"errorMsg": "No results",
"errorType": "message",
"url": "https://cavalier.hudsonrock.com/api/json/v2/osint-tools/search-by-username?username={}",
"urlMain": "https://hudsonrock.com",
"username_claimed": "testadmin"
},
"ICQ": {
"errorType": "status_code",
"url": "https://icq.im/{}/en",
@ -1040,8 +1075,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/",
@ -1082,6 +1116,13 @@
"urlProbe": "https://api.imgur.com/account/v1/accounts/{}?client_id=546c25a59c58ad7",
"username_claimed": "blue"
},
"Instagram": {
"errorType": "status_code",
"url": "https://instagram.com/{}",
"urlMain": "https://instagram.com/",
"urlProbe": "https://www.picuki.com/profile/{}",
"username_claimed": "instagram"
},
"Instructables": {
"errorType": "status_code",
"url": "https://www.instructables.com/member/{}",
@ -1172,8 +1213,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/",
@ -1225,7 +1269,8 @@
"username_claimed": "blue"
},
"Linktree": {
"errorType": "status_code",
"errorMsg": "\"statusCode\":404",
"errorType": "message",
"url": "https://linktr.ee/{}",
"urlMain": "https://linktr.ee/",
"username_claimed": "anne"
@ -1305,13 +1350,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/{}",
@ -1454,6 +1492,7 @@
},
"OpenStreetMap": {
"errorType": "status_code",
"regexCheck": "^[^.]*?$",
"url": "https://www.openstreetmap.org/user/{}",
"urlMain": "https://www.openstreetmap.org/",
"username_claimed": "blue"
@ -1464,12 +1503,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",
@ -1511,6 +1544,13 @@
"urlMain": "https://www.patreon.com/",
"username_claimed": "blue"
},
"PentesterLab": {
"errorType": "status_code",
"regexCheck": "^[\\w]{4,30}$",
"url": "https://pentesterlab.com/profile/{}",
"urlMain": "https://pentesterlab.com/",
"username_claimed": "0day"
},
"PepperIT": {
"errorMsg": "La pagina che hai provato a raggiungere non si trova qui",
"errorType": "message",
@ -1526,6 +1566,7 @@
},
"Pinkbike": {
"errorType": "status_code",
"regexCheck": "^[^.]*?$",
"url": "https://www.pinkbike.com/u/{}/",
"urlMain": "https://www.pinkbike.com/",
"username_claimed": "blue"
@ -1564,8 +1605,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"
@ -1786,6 +1827,7 @@
"username_claimed": "blue"
},
"Slides": {
"errorCode": 204,
"errorType": "status_code",
"url": "https://slides.com/{}",
"urlMain": "https://slides.com/",
@ -1838,6 +1880,12 @@
"urlMain": "https://speedrun.com/",
"username_claimed": "3Tau"
},
"Spells8": {
"errorType": "status_code",
"url": "https://forum.spells8.com/u/{}",
"urlMain": "https://spells8.com",
"username_claimed": "susurrus"
},
"Splice": {
"errorType": "status_code",
"url": "https://splice.com/{}",
@ -1846,6 +1894,7 @@
},
"Splits.io": {
"errorType": "status_code",
"regexCheck": "^[^.]*?$",
"url": "https://splits.io/users/{}",
"urlMain": "https://splits.io",
"username_claimed": "cambosteve"
@ -1894,6 +1943,7 @@
"Strava": {
"errorMsg": "Strava | Running, Cycling &amp; Hiking App - Train, Track &amp; Share",
"errorType": "message",
"regexCheck": "^[^.]*?$",
"url": "https://www.strava.com/athletes/{}",
"urlMain": "https://www.strava.com/",
"username_claimed": "blue"
@ -1926,12 +1976,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",
@ -1959,6 +2012,14 @@
"urlMain": "https://www.tnaflix.com/",
"username_claimed": "hacker"
},
"TorrentGalaxy": {
"errorMsg": "<title>TGx:Can't show details</title>",
"errorType": "message",
"regexCheck": "^[A-Za-z0-9]{3,15}$",
"url": "https://torrentgalaxy.to/profile/{}",
"urlMain": "https://torrentgalaxy.to/",
"username_claimed": "GalaxyRG"
},
"TradingView": {
"errorType": "status_code",
"request_method": "GET",
@ -2052,6 +2113,12 @@
"urlMain": "https://unsplash.com/",
"username_claimed": "jenny"
},
"Untappd": {
"errorType": "status_code",
"url": "https://untappd.com/user/{}",
"urlMain": "https://untappd.com/",
"username_claimed": "untappd"
},
"VK": {
"errorType": "response_url",
"errorUrl": "https://www.quora.com/profile/{}",
@ -2222,7 +2289,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"
@ -2334,6 +2407,7 @@
},
"eintracht": {
"errorType": "status_code",
"regexCheck": "^[^.]*?$",
"url": "https://community.eintracht.de/fans/{}",
"urlMain": "https://eintracht.de",
"username_claimed": "blue"
@ -2437,10 +2511,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": {
@ -2511,14 +2586,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",
@ -2666,18 +2733,12 @@
"urlMain": "https://wiki.vg/",
"username_claimed": "Auri"
},
"wykop.pl": {
"errorType": "status_code",
"regexCheck": "[a-z0-9-_]{4,35}",
"url": "https://www.wykop.pl/ludzie/{}",
"urlMain": "https://wykop.pl",
"username_claimed": "janusz-nowak"
},
"xHamster": {
"errorType": "status_code",
"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.
@ -555,7 +568,7 @@ def main():
action="store_true",
dest="xlsx",
default=False,
help="Create the standard file for the modern Microsoft Excel spreadsheet (xslx).",
help="Create the standard file for the modern Microsoft Excel spreadsheet (xlsx).",
)
parser.add_argument(
"--site",

@ -52,7 +52,7 @@ class SherlockDetectTests(SherlockBaseTest):
self.assertEqual("message", site_data["errorType"])
# Generate a valid username based on the regex for a username that the
# site supports that is *most likely* not taken. The regex is slighlty
# site supports that is *most likely* not taken. The regex is slightly
# modified version of site_data["regexCheck"] as we want a username
# that has the maximum length that is supported by the site. This way,
# we wont generate a random username that might actually exist. This
@ -109,7 +109,7 @@ class SherlockDetectTests(SherlockBaseTest):
self.assertEqual("status_code", site_data["errorType"])
# Generate a valid username based on the regex for a username that the
# site supports that is *most likely* not taken. The regex is slighlty
# site supports that is *most likely* not taken. The regex is slightly
# modified version of site_data["regexCheck"] as we want a username
# that has the maximum length that is supported by the site. This way,
# we wont generate a random username that might actually exist. This

@ -1,4 +1,5 @@
## List Of Supported Sites (396 Sites In Total!)
## List Of Supported Sites (400 Sites In Total!)
1. ![](https://www.google.com/s2/favicons?domain=https://www.1337x.to/) [1337x](https://www.1337x.to/)
1. ![](https://www.google.com/s2/favicons?domain=https://2Dimensions.com/) [2Dimensions](https://2Dimensions.com/)
1. ![](https://www.google.com/s2/favicons?domain=http://forum.3dnews.ru/) [3dnews](http://forum.3dnews.ru/)
1. ![](https://www.google.com/s2/favicons?domain=https://www.7cups.com/) [7Cups](https://www.7cups.com/)
@ -37,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.blipfoto.com/) [Blipfoto](https://www.blipfoto.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://www.blogger.com/) [Blogger](https://www.blogger.com/)
@ -49,6 +49,7 @@
1. ![](https://www.google.com/s2/favicons?domain=https://buzzfeed.com/) [BuzzFeed](https://buzzfeed.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://www.cgtrader.com) [CGTrader](https://www.cgtrader.com)
1. ![](https://www.google.com/s2/favicons?domain=https://www.cnet.com/) [CNET](https://www.cnet.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://cssbattle.dev) [CSSBattle](https://cssbattle.dev)
1. ![](https://www.google.com/s2/favicons?domain=https://ctan.org/) [CTAN](https://ctan.org/)
1. ![](https://www.google.com/s2/favicons?domain=https://caddy.community/) [Caddy Community](https://caddy.community/)
1. ![](https://www.google.com/s2/favicons?domain=https://community.cartalk.com/) [Car Talk Community](https://community.cartalk.com/)
@ -65,6 +66,7 @@
1. ![](https://www.google.com/s2/favicons?domain=https://www.clozemaster.com) [Clozemaster](https://www.clozemaster.com)
1. ![](https://www.google.com/s2/favicons?domain=https://www.clubhouse.com) [Clubhouse](https://www.clubhouse.com)
1. ![](https://www.google.com/s2/favicons?domain=https://codesnippets.fandom.com) [Code Snippet Wiki](https://codesnippets.fandom.com)
1. ![](https://www.google.com/s2/favicons?domain=https://codeberg.org/) [Codeberg](https://codeberg.org/)
1. ![](https://www.google.com/s2/favicons?domain=https://www.codecademy.com/) [Codecademy](https://www.codecademy.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://www.codechef.com/) [Codechef](https://www.codechef.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://codeforces.com/) [Codeforces](https://codeforces.com/)
@ -81,6 +83,7 @@
1. ![](https://www.google.com/s2/favicons?domain=https://crowdin.com/) [Crowdin](https://crowdin.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://community.cryptomator.org/) [Cryptomator Forum](https://community.cryptomator.org/)
1. ![](https://www.google.com/s2/favicons?domain=https://cults3d.com/en) [Cults3D](https://cults3d.com/en)
1. ![](https://www.google.com/s2/favicons?domain=https://cyberdefenders.org/) [CyberDefenders](https://cyberdefenders.org/)
1. ![](https://www.google.com/s2/favicons?domain=https://dev.to/) [DEV Community](https://dev.to/)
1. ![](https://www.google.com/s2/favicons?domain=https://dmoj.ca/) [DMOJ](https://dmoj.ca/)
1. ![](https://www.google.com/s2/favicons?domain=https://www.dailymotion.com/) [DailyMotion](https://www.dailymotion.com/)
@ -114,7 +117,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/)
@ -136,9 +138,9 @@
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/)
1. ![](https://www.google.com/s2/favicons?domain=https://hackerearth.com/) [HackerEarth](https://hackerearth.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://news.ycombinator.com/) [HackerNews](https://news.ycombinator.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://hackerone.com/) [HackerOne](https://hackerone.com/)
@ -150,6 +152,7 @@
1. ![](https://www.google.com/s2/favicons?domain=https://houzz.com/) [Houzz](https://houzz.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://hubpages.com/) [HubPages](https://hubpages.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://hubski.com/) [Hubski](https://hubski.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://hudsonrock.com) [HudsonRock](https://hudsonrock.com)
1. ![](https://www.google.com/s2/favicons?domain=https://icq.com/) [ICQ](https://icq.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://www.ifttt.com/) [IFTTT](https://www.ifttt.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://irc-galleria.net/) [IRC-Galleria](https://irc-galleria.net/)
@ -157,6 +160,7 @@
1. ![](https://www.google.com/s2/favicons?domain=https://www.imagefap.com/) [Image Fap](https://www.imagefap.com/) **(NSFW)**
1. ![](https://www.google.com/s2/favicons?domain=https://imgup.cz/) [ImgUp.cz](https://imgup.cz/)
1. ![](https://www.google.com/s2/favicons?domain=https://imgur.com/) [Imgur](https://imgur.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://instagram.com/) [Instagram](https://instagram.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://www.instructables.com/) [Instructables](https://www.instructables.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://app.intigriti.com) [Intigriti](https://app.intigriti.com)
1. ![](https://www.google.com/s2/favicons?domain=https://forum.ionicframework.com/) [Ionic Forum](https://forum.ionicframework.com/)
@ -190,7 +194,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/)
@ -214,13 +217,13 @@
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/)
1. ![](https://www.google.com/s2/favicons?domain=https://packagist.org/) [Packagist](https://packagist.org/)
1. ![](https://www.google.com/s2/favicons?domain=https://pastebin.com/) [Pastebin](https://pastebin.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://www.patreon.com/) [Patreon](https://www.patreon.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://pentesterlab.com/) [PentesterLab](https://pentesterlab.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://www.pepper.it) [PepperIT](https://www.pepper.it)
1. ![](https://www.google.com/s2/favicons?domain=https://www.periscope.tv/) [Periscope](https://www.periscope.tv/)
1. ![](https://www.google.com/s2/favicons?domain=https://www.pinkbike.com/) [Pinkbike](https://www.pinkbike.com/)
@ -270,6 +273,7 @@
1. ![](https://www.google.com/s2/favicons?domain=https://sourceforge.net/) [SourceForge](https://sourceforge.net/)
1. ![](https://www.google.com/s2/favicons?domain=https://soylentnews.org) [SoylentNews](https://soylentnews.org)
1. ![](https://www.google.com/s2/favicons?domain=https://speedrun.com/) [Speedrun.com](https://speedrun.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://spells8.com) [Spells8](https://spells8.com)
1. ![](https://www.google.com/s2/favicons?domain=https://splice.com/) [Splice](https://splice.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://splits.io) [Splits.io](https://splits.io)
1. ![](https://www.google.com/s2/favicons?domain=https://www.sporcle.com/) [Sporcle](https://www.sporcle.com/)
@ -288,6 +292,7 @@
1. ![](https://www.google.com/s2/favicons?domain=https://tenor.com/) [Tenor](https://tenor.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://themeforest.net/) [ThemeForest](https://themeforest.net/)
1. ![](https://www.google.com/s2/favicons?domain=https://www.tnaflix.com/) [TnAFlix](https://www.tnaflix.com/) **(NSFW)**
1. ![](https://www.google.com/s2/favicons?domain=https://torrentgalaxy.to/) [TorrentGalaxy](https://torrentgalaxy.to/)
1. ![](https://www.google.com/s2/favicons?domain=https://www.tradingview.com/) [TradingView](https://www.tradingview.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://www.trakt.tv/) [Trakt](https://www.trakt.tv/)
1. ![](https://www.google.com/s2/favicons?domain=https://trashbox.ru/) [TrashboxRU](https://trashbox.ru/)
@ -301,6 +306,7 @@
1. ![](https://www.google.com/s2/favicons?domain=https://typeracer.com) [Typeracer](https://typeracer.com)
1. ![](https://www.google.com/s2/favicons?domain=https://ultimate-guitar.com/) [Ultimate-Guitar](https://ultimate-guitar.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://unsplash.com/) [Unsplash](https://unsplash.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://untappd.com/) [Untappd](https://untappd.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://vk.com/) [VK](https://vk.com/)
1. ![](https://www.google.com/s2/favicons?domain=https://vsco.co/) [VSCO](https://vsco.co/)
1. ![](https://www.google.com/s2/favicons?domain=https://forum.velomania.ru/) [Velomania](https://forum.velomania.ru/)
@ -358,7 +364,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/)
@ -370,7 +376,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/)
@ -394,6 +399,5 @@
1. ![](https://www.google.com/s2/favicons?domain=https://www.toster.ru/) [toster](https://www.toster.ru/)
1. ![](https://www.google.com/s2/favicons?domain=https://uid.me/) [uid](https://uid.me/)
1. ![](https://www.google.com/s2/favicons?domain=https://wiki.vg/) [wiki.vg](https://wiki.vg/)
1. ![](https://www.google.com/s2/favicons?domain=https://wykop.pl) [wykop.pl](https://wykop.pl)
1. ![](https://www.google.com/s2/favicons?domain=https://xhamster.com) [xHamster](https://xhamster.com) **(NSFW)**
1. ![](https://www.google.com/s2/favicons?domain=https://znanylekarz.pl) [znanylekarz.pl](https://znanylekarz.pl)

Loading…
Cancel
Save