photon

Crawler web rapide conçu pour l'OSINT. Extrait URLs, e-mails, profils de réseaux sociaux, fichiers, clés secrètes, endpoints JavaScript et domaines liés depuis les sites cibles. Fast web crawler designed for OSINT. Extracts URLs, emails, social media profiles, files, secret keys, JavaScript endpoints, and linked domains from target websites.

↗ https://github.com/s0md3v/Photon

Overview

Photon is an OSINT-focused web crawler that extracts useful intelligence from websites: URLs, email addresses, social media links, JavaScript files, secret keys/tokens, file downloads, and external domains. Much faster than manual browsing and more OSINT-aware than generic crawlers.

Installation

git clone https://github.com/s0md3v/Photon
cd Photon
pip3 install -r requirements.txt

Basic Usage

Crawl a website

python3 photon.py -u https://example.com

Crawl with custom depth

python3 photon.py -u https://example.com -l 3

Crawl with threads

python3 photon.py -u https://example.com -t 10

Save output to directory

python3 photon.py -u https://example.com -o ./output/

What Photon Finds

# URLs discovered (all linked pages)
# Email addresses on the site
# Social media profile links
# JavaScript files (for JS analysis)
# Intel (secret keys, API tokens in source)
# Linked external domains
# Files (PDF, DOC, ZIP, etc.)
# Internal endpoints from JS code

Show all discovered data

python3 photon.py -u https://example.com --keys --dns

Key Extraction

Extract API keys, tokens, and secrets from JS

python3 photon.py -u https://example.com --keys
# Common patterns it finds:
# AWS_ACCESS_KEY, API_KEY, SECRET, TOKEN, PASSWORD
# firebase configurations
# Stripe/Twilio/Sendgrid keys

Domain Discovery

Find linked external domains

python3 photon.py -u https://example.com --dns
# Includes CDNs, tracking services, third-party APIs
# Reveals technology stack and business relationships

Crawling Options

Set cookie for authenticated crawling

python3 photon.py -u https://example.com --cookie "sessionid=abc123"

Custom headers

python3 photon.py -u https://example.com --headers '{"Authorization": "Bearer TOKEN"}'

Crawl without following redirects

python3 photon.py -u https://example.com --timeout 5

Filter by regex

python3 photon.py -u https://example.com --regex ".*admin.*"

Exclude specific URLs

python3 photon.py -u https://example.com --exclude logout,signout

Tips

  • Start with --keys to quickly find exposed secrets in JavaScript
  • Use --dns to map the target’s technology ecosystem
  • Crawl JS files specifically — modern SPAs put API endpoints in JS bundles
  • Combine with subfinder/amass: crawl each subdomain separately
  • Use --seeds to seed the crawler with known URLs and expand coverage
Help / Man page
photon.py [options]

-u URL      Target URL
-l N        Crawl depth (default: 2)
-t N        Threads (default: 2)
-o DIR      Output directory
--keys      Extract secret keys/tokens
--dns       Extract linked domains
--regex R   Filter URLs by regex
--cookie C  Set cookies
--headers H Custom headers (JSON)
--exclude E Comma-separated exclusions
--timeout N Request timeout in seconds
--seeds F   Seed URLs file

Vue d’ensemble

Photon est un crawler web axé OSINT qui extrait des renseignements utiles depuis des sites web : URLs, adresses e-mail, liens vers les réseaux sociaux, fichiers JavaScript, clés/tokens secrets, fichiers téléchargeables et domaines externes. Bien plus rapide qu’une navigation manuelle et plus orienté OSINT que les crawlers génériques.

Installation

git clone https://github.com/s0md3v/Photon
cd Photon
pip3 install -r requirements.txt

Utilisation de base

# Crawler un site web
python3 photon.py -u https://example.com

# Crawler avec une profondeur personnalisée
python3 photon.py -u https://example.com -l 3

# Crawler avec plusieurs threads
python3 photon.py -u https://example.com -t 10

# Sauvegarder la sortie dans un répertoire
python3 photon.py -u https://example.com -o ./output/

Ce que Photon trouve

# URLs découvertes (toutes les pages liées)
# Adresses e-mail présentes sur le site
# Liens vers des profils de réseaux sociaux
# Fichiers JavaScript (pour analyse JS)
# Intel (clés secrètes, tokens API dans le code source)
# Domaines externes liés
# Fichiers (PDF, DOC, ZIP, etc.)
# Endpoints internes issus du code JS

Afficher toutes les données découvertes

python3 photon.py -u https://example.com --keys --dns

Extraction de clés

Extraire les clés API, tokens et secrets depuis le JS

python3 photon.py -u https://example.com --keys
# Motifs courants détectés :
# AWS_ACCESS_KEY, API_KEY, SECRET, TOKEN, PASSWORD
# configurations firebase
# clés Stripe/Twilio/Sendgrid

Découverte de domaines

Trouver les domaines externes liés

python3 photon.py -u https://example.com --dns
# Inclut les CDN, services de tracking, APIs tierces
# Révèle la stack technologique et les relations commerciales

Options de crawl

# Définir un cookie pour un crawl authentifié
python3 photon.py -u https://example.com --cookie "sessionid=abc123"

# En-têtes personnalisés
python3 photon.py -u https://example.com --headers '{"Authorization": "Bearer TOKEN"}'

# Crawler sans suivre les redirections
python3 photon.py -u https://example.com --timeout 5

# Filtrer par regex
python3 photon.py -u https://example.com --regex ".*admin.*"

# Exclure des URLs spécifiques
python3 photon.py -u https://example.com --exclude logout,signout

Conseils

  • Commencer par --keys pour repérer rapidement les secrets exposés dans le JavaScript
  • Utiliser --dns pour cartographier l’écosystème technologique de la cible
  • Crawler spécifiquement les fichiers JS : les SPA modernes placent les endpoints API dans les bundles JS
  • Combiner avec subfinder/amass : crawler chaque sous-domaine séparément
  • Utiliser --seeds pour amorcer le crawler avec des URLs connues et étendre la couverture
Aide / Page de manuel
photon.py [options]

-u URL      Target URL
-l N        Crawl depth (default: 2)
-t N        Threads (default: 2)
-o DIR      Output directory
--keys      Extract secret keys/tokens
--dns       Extract linked domains
--regex R   Filter URLs by regex
--cookie C  Set cookies
--headers H Custom headers (JSON)
--exclude E Comma-separated exclusions
--timeout N Request timeout in seconds
--seeds F   Seed URLs file