This project is a web server fingerprinting system that detects the server type and version of target websites using HTTP/HTTPS banner grabbing.
It includes:
- Terminal-based client
- React frontend (fingerprint-ui)
- Secure Python backend using sockets and SSL
React Frontend (fingerprint-ui) | v Python Secure Server (Socket + SSL) | v Target Websites (HTTP / HTTPS)
- SSL-secured communication
- Multi-threaded server
- HTTP & HTTPS scanning
- Server detection (Apache, Nginx, IIS, etc.)
- Version extraction using regex
- Terminal + Web interface
Frontend: React (fingerprint-ui) Backend: Python Networking: Socket Programming Security: SSL/TLS Concurrency: Multithreading
project/ │── server.py │── client.py │── cert.pem │── key.pem │ ├── fingerprint-ui/ │ ├── src/ │ ├── public/ │ └── package.json │ └── README.md
Terminal Flow:
- User enters URL
- Client sends via socket
- Server scans
- Result displayed
Web Flow:
- User enters URL in UI
- Request sent to backend
- Server scans
- Result shown in UI
- Input from user
- Request sent to server
- SSL connection established
- Server performs scan
- Headers extracted
- Server + version detected
- Response sent back
- Output displayed
Enter target website: example.com
[+] Scanning...
Target : example.com Protocol : HTTPS Server : Nginx Version : 1.18.0
-
Generate SSL Certificate openssl req -new -x509 -days 365 -nodes -out cert.pem -keyout key.pem
-
Start Server python3 server.py
-
Run Terminal Client python3 client.py
-
Run React Frontend cd fingerprint-ui npm install npm start
Socket Programming: socket.socket() connect() send() recv()
SSL Encryption: ssl.wrap_socket()
Multithreading: threading.Thread()
Banner Grabbing: HEAD / HTTP/1.1
CHINMAYI HEBBAR AM (PES2UG24CS134) GUNAVATHI MI (PES2UG24CS172) GAUTHAM L (PES2UG24CS171)
For educational and ethical use only