← retour aux outils back to tools

# 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