Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
wpbullet — Un análisis de código estático para WordPress (y PHP) | Kitploit
Herramientas/GitHubGitHub/webarx-security/wpbullet
Análisis Estático de Código (SAST)Análisis de VulnerabilidadesAnálisis de CódigoSeguridad Web
GitHubwebarx-security/wpbullet

wpbullet

Un análisis de código estático para WordPress (y PHP)

Ver Repositorio
23945hace 3 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Texto alternativo

wpBullet Build Status Python 2.x|3.x License

Un análisis estático de código para Plugins/Temas de WordPress (y PHP)

Instalación

Simplemente clona el repositorio, instala los requisitos y ejecuta el script

  • $ git clone https://github.com/webarx-security/wpbullet wpbullet
  • $ cd wpbullet
  • $ pip install -r requirements.txt
  • $ python wpbullet.py

Uso

Opciones disponibles:

root@kitploit:~
--path (required) System path or download URL 
Examples:
--path="/path/to/plugin"
--path="https://wordpress.org/plugins/example-plugin"
--path="https://downloads.wordpress.org/plugin/example-plugin.1.5.zip"

--enabled (optional) Check only for given modules, ex. --enabled="SQLInjection,CrossSiteScripting"
--disabled (optional) Don't check for given modules, ex. --disabled="SQLInjection,CrossSiteScripting"
--cleanup (optional) Automatically remove content of .temp folder after scanning remotely downloaded plugin (boolean)
--report (optional) Saves result inside reports/ directory in JSON format (boolean)

$ python wpbullet.py --path="/var/www/wp-content/plugins/plugin-name"

Creación de módulos

Crear un módulo es flexible y permite sobrescribir los métodos de BaseClass para cada módulo, así como crear sus propios métodos.

Cada módulo en el directorio Modules implementa propiedades y métodos de core.modules.BaseClass, por lo tanto, el parámetro requerido de cada módulo es BaseClass.

Una vez creado, el módulo debe importarse en modules/__init__.py. El nombre del módulo y de la clase deben ser consistentes para que el módulo se cargue.

Si estás abriendo un pull request para añadir un nuevo módulo, por favor proporciona también pruebas unitarias para tu módulo.

Plantilla de módulo

Modules/ExampleVulnerability.py

root@kitploit:~
from core.modules import BaseClass


class ExampleVulnerability(object):

    # Vulnerability name
    name = "Cross-site Scripting"

    # Vulnerability severity
    severity = "Low-Medium"

    # Functions causing vulnerability
    functions = [
        "print"
        "echo"
    ]

    # Functions/regex that prevent exploitation
    blacklist = [
        "htmlspecialchars",
        "esc_attr"
    ]

Sobrescribiendo el patrón de coincidencia de expresiones regulares

El patrón de expresión regular se genera en core.modules.BaseClass.build_pattern y, por lo tanto, puede sobrescribirse en cada clase de módulo.

Modules/ExampleVulnerability.py

root@kitploit:~
import copy


...
# Build dynamic regex pattern to locate vulnerabilities in given content
def build_pattern(self, content, file):
    user_input = copy.deepcopy(self.user_input)

    variables = self.get_input_variables(self, content)

    if variables:
        user_input.extend(variables)

    if self.blacklist:
        blacklist_pattern = r"(?!(\s?)+(.*(" + '|'.join(self.blacklist) + ")))"
    else:
        blacklist_pattern = ""

    self.functions = [self.functions_prefix + x for x in self.functions]

    pattern = r"((" + '|'.join(self.functions) + ")\s{0,}\(?\s{0,1}" + blacklist_pattern + ".*(" + '|'.join(user_input) + ").*)"
    return pattern

Pruebas

Ejecutando pruebas unitarias: $ python3 -m unittest

Descargar herramienta