gbossert / http2.lol

PoC of a Browser Identification via HTTP/2 active stack fingerprinting

Home Page:https://http2.lol

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

http2.lol

This repository contains a PoC of a browser identification mechanism that leverages an HTTP/2 active stack fingerprinting technique.

It is made of three different parts:

  • a Flask web server that exposes an HTML/JS page to force the browser to refresh a specific asset (server.py)
  • an HTTP/2 fake server that answers browser requests to fetch an asset with specific HTTP/2 tests (server_http2.py)
  • a Fingerprint knowledge base that analyzes the HTTP/2 tests results to compute the browser stack (fingerprint.py)

It should be noted, that a redis server is used as a shared memory storage between the flask server and the fake http2 server.

IMHO: the most interesting part of this project is how I automaticaly computed the different test cases used to fingerprint the browser :)

For more details, you can:

  • refer to the short presentation available in the doc/ directory
  • send me your question per email (my_firstname@miskin.fr) or per Twitter DM @Lapeluche
  • buy me a beer and get even more details.

About

PoC of a Browser Identification via HTTP/2 active stack fingerprinting

https://http2.lol

License:GNU General Public License v3.0


Languages

Language:Python 95.3%Language:HTML 4.7%