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-2023-3460 — CVE-2023-3460 | Kitploit
Ferramentas/GitHubGitHub/emadyay/cve-2023-3460
Privilege EscalationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingAuthentication
GitHubemadyay/cve-2023-3460

CVE-2023-3460

CVE-2023-3460

Ver Repositório
há 3 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

CVE-2023-3460 - Acesso de administrador não autorizado para POC do plugin Ultimate Member

Pontuação CVSS: 9.1

Data: 07/04/2023

O que é o plugin Ultimate Member?

O plugin Ultimate Member é um plugin de associação popular para registrar usuários, o plugin tem mais de 200.000 instalações ativas.

Alt text

Verificação Rápida

Uma vulnerabilidade crítica foi descoberta no plugin Ultimate Member em 7 de julho, o atacante poderia criar uma conta de administrador usando uma técnica de escalonamento de privilégio que pode levar a assumir o controle do site WordPress.

Então, como funciona o exploit?

Bem, se observarmos as Funções e Capacidades do WordPress, ele tem algumas funções que um usuário pode ter: , , , , , . Então, como podemos obter privilégio de administrador? Bem, primeiro vamos ver como o plugin Ultimate Member funciona. Primeiro, você precisa configurar o plugin para funcionar corretamente, então precisamos criar algumas páginas na seção , depois vinculamos essas páginas em Ultimate Member > Configurações. Depois disso, podemos criar novas funções ou apenas usar as funções padrão que o Ultimate Member oferece.

Alt text

A essa altura, devemos ter um plugin funcionando. Agora vamos colocar a mão na massa e ver como isso funciona no backend. Eu registrei um usuário normal com a função Subscriber e, se olharmos a tabela wp_usermeta no MySQL, podemos ver que o valor wp_capabilities está definido como um array serializado e a partir daí define nossa função, que neste caso é Subscriber.

Alt text

Então, como podemos mudar o valor de wp_capabilities? Bem, podemos passar wp_capabilities como um parâmetro na requisição POST enquanto nos registramos, assim:

Alt text

Mas não termina aí. Veja, existe uma função chamada is_metakey_banned e a função funciona verificando alguns valores como "cap_key", "wp_capabilities", "wp_user_level", "user_activation_key" etc. O que nos interessa é wp_capabilities, mas se tivermos isso no corpo da nossa requisição, ele vai acionar o ali para nos impedir de mudar nossa função.

Alt text

A partir daqui, podemos tentar usar alguns tipos diferentes de decodificação, mas não funcionará. Após um tempo de pesquisa e um pouco de ajuda da IA, descobri que o WordPress aceita caracteres acentuados por padrão, caracteres como à, è, ì, ò, ù, À, È, Ì, Ò, Ù. Então, se usarmos esses caracteres no corpo da requisição, algo como wp_càpabilities=administrator, o que acontecerá? Bem, ele não atinge o ponto de interrupção na linha 182 em class-user.php e podemos contornar a função is_metakey_banned.

Alt text

Verificando o MySQL, podemos ver que conseguimos alterar o valor.

Alt text

Mas não somos admin, na verdade não temos nenhuma função.

Alt text

Fizemos algo obviamente, mas para nos tornarmos admin precisamos ter exatamente o mesmo valor de admin, que é assim: a:1:{s:13:"administrator";b:1;}. Ok, agora vamos tentar e passar isso diretamente para o nosso parâmetro.

Alt text

Novamente verificando o MySQL, definimos o valor de wp_capabilities, mas não era o que esperávamos.

Alt text

Ele pegou nosso valor e o transformou em uma string serializada, mas olhando para o wp_capabilities do admin, podemos ver que é um array serializado, é isso que queremos. Então, o WordPress tem sua própria serialização, então podemos usar isso para passar nosso valor como um array e o WordPress faz o resto para nós. Então, aqui está como nosso payload se parece: wp_càpabilities[administrator]=1.

Alt text

No final, podemos ver que o valor de wp_capabilities foi alterado para a:1:{s:13:"administrator";s:1:"1";}, que agora pode fazer login como admin.

Alt text

E agora podemos fazer login como admin.

Alt text

Baixar ferramenta
Super Admin
Administrator
Editor
Author
Contributor
Contributor
Pages
break