skipfish

Outil actif de reconnaissance de sécurité des applications web. Effectue un crawling et un fuzzing à haute vitesse pour détecter XSS, injection SQL, traversée de chemin, inclusion de fichiers, et d'autres vulnérabilités web. Active web application security reconnaissance tool. Performs high-speed crawling and fuzzing to detect XSS, SQL injection, path traversal, file includes, and other web vulnerabilities.

↗ https://gitlab.com/kalilinux/packages/skipfish

Overview

skipfish is a Google-developed web application security scanner that performs recursive crawling and dictionary-based fuzzing at very high speed. It detects common web vulnerabilities and produces HTML reports. While development has slowed, it’s still effective for quick web security assessments.

Basic Usage

Basic scan with output directory

skipfish -o output/ https://example.com

With authentication cookie

skipfish -o output/ -I example.com -C "session=abc123" https://example.com/

Exclude specific paths

skipfish -o output/ -X /logout -X /delete https://example.com/

Rate limiting (requests per second)

skipfish -o output/ -l 50 https://example.com/

Wordlist Configuration

Use built-in wordlist (default)

skipfish -o output/ https://example.com/

Custom wordlist

skipfish -o output/ -W wordlist.wl https://example.com/

Add additional keywords

skipfish -o output/ -w /usr/share/skipfish/dictionaries/complete.wl https://example.com/

Authentication

Cookie-based authentication

skipfish -o output/ -C "PHPSESSID=abc123; logged_in=1" https://example.com/

HTTP Basic Auth

skipfish -o output/ -A user:password https://example.com/

Form-based login (set cookies after manual login) 1. Log in manually, capture session cookie 2. Pass cookie to skipfish

skipfish -o output/ -C "session=TOKEN" https://example.com/

Scan Scope Control

Limit to specific path

skipfish -o output/ -I example.com/app/ https://example.com/app/

Exclude paths (logout, delete operations)

skipfish -o output/ -X /logout -X /account/delete https://example.com/

Follow external links to same domain only

skipfish -o output/ -g https://example.com/

Depth limit

skipfish -o output/ -m 3 https://example.com/

Performance

Set request rate (req/sec)

skipfish -o output/ -l 100 https://example.com/

Set timeout per request (ms)

skipfish -o output/ -t 5000 https://example.com/

Number of concurrent requests

skipfish -o output/ -r 100 https://example.com/

Viewing Results

Results are saved as HTML report Open in browser:

firefox output/index.html
# Or generate report after scan
# Report shows:
# - Findings by severity (high/medium/low/info)
# - URL tree of discovered content
# - Response signatures

Common Findings

High severity:
  - SQL injection
  - XSS (reflected/stored)
  - File path traversal
  - Remote code execution indicators

Medium severity:
  - Information disclosure
  - Insecure form handling
  - Missing security headers

Low/Info:
  - Directory listing
  - Error messages with stack traces
  - Robots.txt findings

Tips

  • Use -X /logout to avoid being logged out during the scan
  • skipfish is fast but can miss vulnerabilities that require complex auth flows
  • Combine with manual testing and OWASP ZAP for better coverage
  • The -I flag restricts crawling to the specified domain/path — important for authorized scope
Help / Man page
skipfish [options] -o output_dir start_url

-o DIR       Output directory (required)
-W FILE      Wordlist file
-C COOKIE    Add cookie header
-A USER:PASS HTTP Basic Auth
-I SCOPE     Crawl only URLs with this prefix
-X PATH      Exclude this path
-l N         Request rate limit (req/sec)
-m DEPTH     Maximum crawl depth
-t MS        Request timeout (milliseconds)
-r N         Max concurrent requests
-g           Don't follow external links
-q           Quiet mode

Vue d’ensemble

skipfish est un scanner de sécurité d’applications web développé par Google qui effectue un crawling récursif et un fuzzing basé sur dictionnaire à très haute vitesse. Il détecte les vulnérabilités web courantes et produit des rapports HTML. Bien que son développement ait ralenti, il reste efficace pour des évaluations web rapides.

Utilisation de base

# Scan de base avec répertoire de sortie
skipfish -o output/ https://example.com

# Avec cookie d'authentification
skipfish -o output/ -I example.com -C "session=abc123" https://example.com/

# Exclure des chemins spécifiques
skipfish -o output/ -X /logout -X /delete https://example.com/

# Limitation de débit (requêtes par seconde)
skipfish -o output/ -l 50 https://example.com/

Configuration de la wordlist

# Utiliser la wordlist intégrée (par défaut)
skipfish -o output/ https://example.com/

# Wordlist personnalisée
skipfish -o output/ -W wordlist.wl https://example.com/

# Ajouter des mots-clés supplémentaires
skipfish -o output/ -w /usr/share/skipfish/dictionaries/complete.wl https://example.com/

Authentification

# Authentification par cookie
skipfish -o output/ -C "PHPSESSID=abc123; logged_in=1" https://example.com/

# HTTP Basic Auth
skipfish -o output/ -A user:password https://example.com/

# Connexion par formulaire (définir les cookies après une connexion manuelle) : 1. se connecter manuellement, capturer le cookie de session 2. passer le cookie à skipfish
skipfish -o output/ -C "session=TOKEN" https://example.com/

Contrôle du périmètre de scan

# Limiter à un chemin spécifique
skipfish -o output/ -I example.com/app/ https://example.com/app/

# Exclure des chemins (déconnexion, opérations de suppression)
skipfish -o output/ -X /logout -X /account/delete https://example.com/

# Ne suivre les liens externes que vers le même domaine
skipfish -o output/ -g https://example.com/

# Limite de profondeur
skipfish -o output/ -m 3 https://example.com/

Performance

# Définir le débit de requêtes (req/sec)
skipfish -o output/ -l 100 https://example.com/

# Définir le timeout par requête (ms)
skipfish -o output/ -t 5000 https://example.com/

# Nombre de requêtes concurrentes
skipfish -o output/ -r 100 https://example.com/

Consulter les résultats

# Les résultats sont sauvegardés en rapport HTML. Ouvrir dans un navigateur :
firefox output/index.html
# Ou générer le rapport après le scan
# Le rapport montre :
# - Résultats par sévérité (high/medium/low/info)
# - Arborescence des URL découvertes
# - Signatures de réponse

Résultats courants

Sévérité haute :
  - Injection SQL
  - XSS (réfléchie/stockée)
  - Traversée de chemin de fichier
  - Indicateurs d'exécution de code distant

Sévérité moyenne :
  - Divulgation d'informations
  - Gestion de formulaire non sécurisée
  - En-têtes de sécurité manquants

Basse/Info :
  - Listing de répertoire
  - Messages d'erreur avec stack traces
  - Résultats de Robots.txt

Conseils

  • Utiliser -X /logout pour éviter d’être déconnecté pendant le scan
  • skipfish est rapide mais peut manquer des vulnérabilités nécessitant des flux d’authentification complexes
  • Combiner avec des tests manuels et OWASP ZAP pour une meilleure couverture
  • Le flag -I restreint le crawling au domaine/chemin spécifié : important pour respecter le périmètre autorisé
Aide / Page de manuel
skipfish [options] -o output_dir start_url

-o DIR       Output directory (required)
-W FILE      Wordlist file
-C COOKIE    Add cookie header
-A USER:PASS HTTP Basic Auth
-I SCOPE     Crawl only URLs with this prefix
-X PATH      Exclude this path
-l N         Request rate limit (req/sec)
-m DEPTH     Maximum crawl depth
-t MS        Request timeout (milliseconds)
-r N         Max concurrent requests
-g           Don't follow external links
-q           Quiet mode