All Projects → fingerprintjs → external-protocol-flooding

fingerprintjs / external-protocol-flooding

Licence: MIT License
Scheme flooding vulnerability: how it works and why it is a threat to anonymous browsing

Programming Languages

typescript
32286 projects
CSS
56736 projects
javascript
184084 projects - #8 most used programming language
HTML
75241 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to external-protocol-flooding

browserrecon-php
Advanced Web Browser Fingerprinting
Stars: ✭ 29 (-95.19%)
Mutual labels:  exploit, vulnerability, fingerprinting
prl guest to host
Guest to host VM escape exploit for Parallels Desktop
Stars: ✭ 26 (-95.69%)
Mutual labels:  exploit, vulnerability
PwnX.py
🏴‍☠️ Pwn misconfigured sites running ShareX custom image uploader API through chained exploit
Stars: ✭ 30 (-95.02%)
Mutual labels:  exploit, vulnerability
SQL Injection Payload
SQL Injection Payload List
Stars: ✭ 62 (-89.72%)
Mutual labels:  exploit, vulnerability
CVE-2021-33766
ProxyToken (CVE-2021-33766) : An Authentication Bypass in Microsoft Exchange Server POC exploit
Stars: ✭ 37 (-93.86%)
Mutual labels:  exploit, vulnerability
exynos-usbdl
Unsigned code loader for Exynos BootROM
Stars: ✭ 57 (-90.55%)
Mutual labels:  exploit, vulnerability
refingerprint
A more refined fingerprinting module based on Fingerprint2.js
Stars: ✭ 34 (-94.36%)
Mutual labels:  fingerprinting, browser-fingerprinting
SAP vulnerabilities
DoS PoC's for SAP products
Stars: ✭ 47 (-92.21%)
Mutual labels:  exploit, vulnerability
exploit
My exploitDB.
Stars: ✭ 16 (-97.35%)
Mutual labels:  exploit, vulnerability
Pentesting
Misc. Public Reports of Penetration Testing and Security Audits.
Stars: ✭ 24 (-96.02%)
Mutual labels:  exploit, vulnerability
exploits
Some of my public exploits
Stars: ✭ 50 (-91.71%)
Mutual labels:  exploit, vulnerability
APSoft-Web-Scanner-v2
Powerful dork searcher and vulnerability scanner for windows platform
Stars: ✭ 96 (-84.08%)
Mutual labels:  exploit, vulnerability
overflow
A command-line tool for exploiting stack-based buffer overflow vulnerabilities.
Stars: ✭ 66 (-89.05%)
Mutual labels:  exploit, vulnerability
CVE-2019-8449
CVE-2019-8449 Exploit for Jira v2.1 - v8.3.4
Stars: ✭ 66 (-89.05%)
Mutual labels:  exploit, vulnerability
break-fast-serial
A proof of concept that demonstrates asynchronous scanning for Java deserialization bugs
Stars: ✭ 53 (-91.21%)
Mutual labels:  exploit, vulnerability
hack
Kubernetes security and vulnerability tools and utilities.
Stars: ✭ 56 (-90.71%)
Mutual labels:  exploit, vulnerability
rsGen
rsGen is a Reverse Shell Payload Generator for hacking.
Stars: ✭ 71 (-88.23%)
Mutual labels:  exploit, vulnerability
vmware guest auth bypass
Proof of concept of VMSA-2017-0012
Stars: ✭ 42 (-93.03%)
Mutual labels:  exploit, vulnerability
vulristics
Extensible framework for analyzing publicly available information about vulnerabilities
Stars: ✭ 46 (-92.37%)
Mutual labels:  exploit, vulnerability
SpringBootExploit
项目是根据LandGrey/SpringBootVulExploit清单编写,目的hvv期间快速利用漏洞、降低漏洞利用门槛。
Stars: ✭ 1,060 (+75.79%)
Mutual labels:  exploit, vulnerability

The source code of the demo for external protocol flooding vulnerability. Allows arbitrary websites to gather information about installed applications on a victim's computer in order to perform reliable tracking across different desktop browsers.

This repository is created for research and educational purposes only. Consider reading the original article about research.

Target Browsers

The demo was successfuly tested on the following browsers and operating systems:

  • Chrome 90 (Windows 10, macOS Big Sur)
  • Firefox 88.0.1 (Ubuntu 20.04, Windows 10, macOS Big Sur)
  • Safari 14.1 (macOS Big Sur)
  • Tor Browser 10.0.16 (Ubuntu 20.04, Windows 10, macOS Big Sur)
  • Brave 1.24.84 (Windows 10, macOS Big Sur)
  • Yandex Browser 21.3.0 (Windows 10, macOS Big Sur)
  • Microsoft Edge 90 (Windows 10, macOS Big Sur)

The vulnerability can already be fixed by the time you find this repository.

Technical overview

The scheme flooding vulnerability allows an attacker to determine which applications you have installed. In order to generate a 32-bit cross-browser device identifier, a website can test a list of 32 popular applications and check if each is installed or not. On average, the identification process takes a few seconds and works across desktop Windows, Mac and Linux operating systems.

To check if an application is installed, browsers can use built-in custom URL scheme handlers. You can see this feature in action by entering skype:// in your browser address bar. If you have Skype installed, your browser will open a confirmation dialog that asks if you want to launch it. This feature is also known as deep linking and is widely used on mobile devices, but is available within desktop browsers as well. Any application that you install can register its own scheme to allow other apps to open it.

To make this vulnerability possible, the following steps are required:

  • Prepare a list of application URL schemes that you want to test. The list may depend on your goals, for example, if you want to check if some industry or interest-specific applications are installed.
  • Add a script on a website that will test each application from your list. The script will return an ordered array of boolean values. Each boolean value is true if the application is installed or false if it is not.
  • Use this array to generate a permanent cross-browser identifier.
  • Optionally, use machine learning algorithms to guess your website visitors’ occupation, interests, and age using installed application data.

The actual implementation of the exploit varies by browser, however the basic concept is the same. It works by asking the browser to show a confirmation dialog in a popup window. Then the JavaScript code can detect if a popup has just been opened and detect the presence of an application based on that.

Authors

Join our team to work on exciting research in online security: [email protected]

This repository is MIT licensed.

Copyright 2021 FingerprintJS, Inc

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].