Try   HackMD

Guide des commandes curl

Table des matières


Commandes de base curl

# Télécharger une page web
curl http://example.com

# Télécharger un fichier et conserver son nom original
curl -O http://example.com/file.txt

# Télécharger un fichier et le renommer localement
curl -o file.txt http://example.com/file.txt

# Reprendre un téléchargement interrompu
curl -C - -O http://example.com/file.zip

# Télécharger un fichier uniquement s'il a été modifié depuis une date spécifique
curl -z file.txt http://example.com/file.txt

Authentification

# Authentification de base
curl -u user:password http://example.com

Envoi de données

# Envoyer des données en POST
curl -d "name=value" http://example.com

# Envoyer des données en spécifiant la méthode POST
curl -X POST -d "name=value" http://example.com

# Envoyer des données avec des en-têtes personnalisés
curl -H "X-Header: value" http://example.com

Gestion des cookies

# Envoyer des cookies
curl -b "name=value" http://example.com

# Enregistrer des cookies dans un fichier
curl -c cookies.txt http://example.com

# Utiliser des cookies depuis un fichier
curl -b cookies.txt http://example.com

Téléchargement de fichiers

# Télécharger un fichier avec un formulaire
curl -F "name=@file.txt" http://example.com

Limiter le débit

# Limiter le débit de téléchargement
curl --limit-rate 100K http://example.com

Référent et User-Agent

# Spécifier un référent
curl -e http://referer.com http://example.com

# Spécifier un User-Agent
curl -A "User-Agent" http://example.com

Utilisation de proxy

# Utiliser un proxy
curl -x proxy.example.com:8080 http://example.com

# Authentification avec un proxy
curl --proxy-user user:password http://example.com

HTTPS et certificats

# Ignorer les erreurs de certificat
curl -k https://example.com

# Utiliser un certificat CA personnalisé
curl --cacert ca.pem https://example.com

# Utiliser un certificat client
curl --cert cert.pem https://example.com

# Utiliser une clé privée
curl --key key.pem https://example.com

Résolution DNS et interfaces réseau

# Résoudre un nom de domaine avec une adresse IP spécifique
curl --resolve example.com:443:127.0.0.1 https://example.com

# Utiliser une interface réseau spécifique
curl --interface eth0 http://example.com

# Spécifier des serveurs DNS
curl --dns-servers 8.8.8.8 http://example.com

# Utiliser une interface réseau pour les requêtes DNS
curl --dns-interface eth0 http://example.com

FTP

# Mode passif FTP
curl --ftp-pasv ftp://example.com

# Utiliser une alternative pour la commande USER en FTP
curl --ftp-alternative-to-user "USER newuser" ftp://example.com

# Changer le comportement du mode FTP
curl --ftp-method singlecwd ftp://example.com

# Ignorer l'adresse IP dans les réponses PASV FTP
curl --ftp-skip-pasv-ip ftp://example.com

Techniques de Pentest pour Serveur Web

Détection des en-têtes HTTP

# Voir les en-têtes de réponse HTTP
curl -I http://example.com

# Inclure les en-têtes de réponse dans la sortie
curl -i http://example.com

Exploration de répertoires

# Tester l'existence d'un répertoire ou d'un fichier
curl -o /dev/null -s -w "%{http_code}" http://example.com/admin/

Injection SQL

# Envoyer une requête SQL malveillante
curl -d "username=' OR '1'='1'; -- " -X POST http://example.com/login

XSS (Cross-Site Scripting)

# Tester une injection XSS
curl -d "input=<script>alert('XSS')</script>" -X POST http://example.com/search

Command Injection

# Tester une injection de commande
curl -d "input=value;ls -l" -X POST http://example.com/command

Brute Force

# Script de brute force simple pour mots de passe
for i in $(cat wordlist.txt); do 
    curl -u user:$i http://example.com/login
done

Test des paramètres de requête

# Tester différents paramètres de requête
curl http://example.com/page?id=1
curl http://example.com/page?id=2
curl http://example.com/page?id=3

Analyse des sessions

# Tester des cookies de session
curl -b "sessionid=XYZ123" http://example.com/dashboard