Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
wpbullet — Статический анализ кода для WordPress (и PHP) | Kitploit
Инструменты/GitHubGitHub/webarx-security/wpbullet
Статический анализ кода (SAST)Анализ уязвимостейАнализ КодаВеб-безопасность
GitHubwebarx-security/wpbullet

wpbullet

Статический анализ кода для WordPress (и PHP)

Репозиторий
23945717 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

alt text

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

Статический анализ кода для плагинов/тем WordPress (и PHP)

Установка

Просто клонируйте репозиторий, установите зависимости и запустите скрипт:

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

Использование

Доступные опции:

--path (обязательно) системный путь или URL для скачивания 
Примеры:
--path="/path/to/plugin"
--path="https://wordpress.org/plugins/example-plugin"
--path="https://downloads.wordpress.org/plugin/example-plugin.1.5.zip"

--enabled (опционально) Проверять только указанные модули, напр. --enabled="SQLInjection,CrossSiteScripting"
--disabled (опционально) Не проверять указанные модули, напр. --disabled="SQLInjection,CrossSiteScripting"
--cleanup (опционально) Автоматически удалять содержимое папки .temp после сканирования удалённо загруженного плагина (bool)
--report (опционально) Сохраняет результат в директорию reports/ в формате JSON (bool)

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

Создание модулей

Создание модуля гибкое и позволяет переопределять методы BaseClass для каждого модуля, а также создавать собственные методы.

Каждый модуль в директории Modules реализует свойства и методы из core.modules.BaseClass, поэтому для каждого модуля обязательным параметром является BaseClass.

После создания модуль должен быть импортирован в modules/__init__.py. Имя модуля и класса должны совпадать, чтобы модуль загрузился.

Если вы создаёте pull request для добавления нового модуля, пожалуйста, также предоставьте модульные тесты для вашего модуля.

Шаблон модуля

Modules/ExampleVulnerability.py

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"
    ]

Переопределение шаблона регулярного выражения

Шаблон регулярного выражения генерируется в core.modules.BaseClass.build_pattern и может быть переопределён в классе каждого модуля.

Modules/ExampleVulnerability.py

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

Тестирование

Запуск модульных тестов: $ python3 -m unittest

Скачать инструмент