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
Exploit-CVE-2023-22518 | Kitploit
Ferramentas/GitHubGitHub/lilly-dox/exploit-cve-2023-22518
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoLabs e Prática
GitHublilly-dox/exploit-cve-2023-22518

Exploit-CVE-2023-22518

Ver Repositório
1há 2 anosAinda 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

Exploit-CVE-2023-22518

CVE-2023-22518 in Confluence

CVE-2023-22518 : Esta vulnerabilidade é descrita como “uma falha de autorização inadequada no banco de dados e no servidor do Confluence”. O erro afeta as versões On-premises dos produtos Atlassian.

Configuração do ambiente Use a versão vulnerável 8.0.4 URL de download : https://product-downloads.atlassian.com/software/confluence/downloads/atlassian-confluence-8.0.4-x64.exe

1

Selecione Trial Installation e clique no link para obter a free trial key. Em seguida, configure o cluster: escolha non-cluster 2

Em seguida, vá para setup database -> Selecione MySQL

3

Siga as instruções :

  1. Baixe o driver do MySQL
  2. Coloque o arquivo .jar em /home/lily/atlassian/confluence/confluence/WEB-INF/lib
  3. Reinicie o Confluence e continue o processo de configuração.

4

Configure o banco de dados, crie o usuário e a senha

root@kitploit:~
CREATE DATABASE securedb CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
CREATE USER 'admin123'@'localhost' IDENTIFIED BY 'supersecure';
GRANT ALL PRIVILEGES ON securedb.* TO 'admin123'@'localhost';
GRANT SUPER ON *.* TO 'your_username'@'your_host';
FLUSH PRIVILEGES;

Em seguida, edite /etc/mysql/my.cnf. Adicione as seguintes linhas:

root@kitploit:~
transaction-isolation = READ-COMMITTED
log_bin_trust_function_creators = 1

5

Em seguida, reinicie o MySQL e o Confluence. Depois acesse a página de instalação em localhost:8090 e preencha com o banco de dados criado

6

Verifique se a conexão foi bem-sucedida, clique em Next. Em seguida, faça Sign up.

7

Depuração

*Diff Fiz o diff de dois arquivos jar de duas versões no IntelliJ. Especificamente, comparei as versões 8.0.4 e 7.19.16. Conforme a descrição, faça o diff do arquivo confluence.jar das duas versões entre si.

image

A diferença entre a versão corrigida e a não corrigida está em @WebSudoRequired e @SystemAdminOnly. websudorequired é um recurso para aumentar a segurança das sessões de administrador. Ao tentar acessar o admin, o sistema solicita que a senha seja inserida novamente, mesmo que você já tenha feito login. Ele adiciona uma etapa extra de autenticação para garantir o acesso administrativo.

SystemAdminOnly : é um recurso que limita a função administrativa apenas a contas de administrador. Isso ajuda a garantir que somente contas autorizadas possam executar operações importantes que afetam o sistema.

Defina um breakpoint em validate() em RestoreAction.class

Screenshot 2024-03-24 081621

a função salva o arquivo enviado usando getRestoreFileFromUpload

Screenshot (541)

getExportDescriptor é usado para descompactar e ler o conteúdo do arquivo zip

Screenshot (542)

Screenshot (543)

No entanto, após a depuração, ainda não foi possível encontrar a causa raiz da vulnerabilidade.

A causa descrita no CVE é uma vulnerabilidade de autorização. Isso nos leva a voltar a atenção para pesquisas sobre vulnerabilidades da linguagem Java durante o processo de atribuição de permissões pelo desenvolvedor.

Redirecione a atenção para o arquivo struts.xml. Esse arquivo contém informações sobre ações e roteamento com base em namespaces, bem como nos interceptadores (interceptors).

Screenshot 2024-03-24 082951

Screenshot 2024-03-24 083107

Screenshot 2024-03-24 083206

9

Vemos que o namespace /json potencializa o namespace /admin. Portanto, as rotas criadas para o namespace /admin também podem ser acessadas por meio do namespace /json.

No contexto do namespace /json, o processo de roteamento da requisição envolve a passagem por uma cadeia de interceptadores (interceptors). Um desses interceptadores, chamado WebSudoInterceptor, realiza verificações com base no URI da requisição.

Especificamente, o WebSudoInterceptor executa as seguintes verificações:

Se o caminho da requisição for /authenticate.action, ele é ignorado. Se o caminho da requisição for /admin, ele verifica se o atributo WebSudoNotRequired está vazio.

Se uma requisição for enviada para '/json', então a requisição para '/json/action' será direcionada para '/setup/action' e 'admin/action'. Neste CVE, o caminho vulnerável é / 'json/setup-restore.action?synchronous=true'

Intercepte a requisição no Burp Suite, GET /json/setup-restore.action. No entanto, recebe-se uma resposta "Method Not Allowed response". Tente fazer um POST para /json/setup-restore.action?synchronous=true e receba a resposta 200

10

11

Faça upload do arquivo xmlexport-200123123001.zip

12

e receba a resposta

13

Agora podemos fazer login com a conta admin:admin

14

E o resultado é o seguinte

15

Baixar ferramenta