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

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

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

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

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

Категории

Все категории
Loading categories
joomla.3.7.0exploit — Эксплуат Proof of Concept для уязвимости SQL-инъекции в компоненте com_fields Joomla 3.7.0 (CVE-2017-8917), демонстрирующий обнаружение, перечисление и извлечение данных в удобном для CTF рабочем процессе. | Kitploit
Инструменты/GitHubGitHub/ztrxwzy/joomla.3.7.0exploit
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийCTFТестирование на Проникновение
GitHubztrxwzy/joomla.3.7.0exploit

joomla.3.7.0exploit

Эксплуат Proof of Concept для уязвимости SQL-инъекции в компоненте com_fields Joomla 3.7.0 (CVE-2017-8917), демонстрирующий обнаружение, перечисление и извлечение данных в удобном для CTF рабочем процессе.

Репозиторий
27 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2017-8917 Joomla SQLi PoC

Этот репозиторий содержит простой, удобный для CTF proof of concept (PoC) для уязвимости SQL-инъекции в компоненте com_fields Joomla (CVE-2017-8917). Цель — сохранить рабочий процесс лёгким, но при этом показать полный цикл эксплуатации: обнаружение, перечисление и извлечение данных.

Обзор CVE-2017-8917

Уязвимость: SQL-инъекция в компоненте com_fields Joomla.

Корневая причина: параметр list[fullordering] должным образом не очищается, что позволяет внедрить SQL в формируемый запрос. При использовании полезной нагрузки на основе ошибок (например, UpdateXML) результат SQL может быть выведен в ответе, что позволяет извлекать данные.

Как это эксплуатируется (кратко):

  1. Отправьте специально сформированный запрос на index.php?option=com_fields&view=fields&layout=modal, установив параметр list[fullordering] равным вредоносной полезной нагрузке.
  • Используйте функции на основе ошибок (например, UpdateXML), чтобы заставить базу данных выводить результаты.
  • Разберите ответ (в этом PoC — тег <title>) и извлеките внедрённый вывод.
  • Перебирайте запросы для перечисления версии, имени базы данных, таблиц, столбцов и строк.
  • Ключевые фрагменты кода

    Ниже приведены наиболее важные компоненты.

    parse_args()

    Разбирает аргументы командной строки в простой объект args с полями host и debug. Скрипт предполагает HTTP на порту 80 и формирует базовый URL из --host.

    run_exploit()

    run_exploit() — основная функция оркестрации:

    • Обработка сессии: использует requests.Session() для сохранения cookie и заголовков.
    • request_title(): отправляет запрос и извлекает значение <title>. PoC использует error-based SQLi для утечки данных в этот тег, поэтому это ядро извлечения данных.
    • build_params(): создаёт уязвимые параметры запроса с внедрённым SQL.
    • Полный цикл: проверка → перечисление → дамп.
    • Методы перечисления/дампа: sql_list() и dump_table() автоматизируют перечисление и пофрагментное извлечение.

    _fetch_token()

    CSRF-токен извлекается со страницы входа Joomla. Хотя в некоторых сценариях он может не требоваться, многие маршруты Joomla всё равно выполняют проверки CSRF. Его включение:

    • Повышает надёжность в более строгих конфигурациях.
    • Делает PoC «наиболее реалистичным».
    • Позволяет переиспользовать скрипт, даже если требуется вход или проверка токена.

    wrap_payload() и encode_sql_string()

    Эти вспомогательные функции генерируют фактическую полезную нагрузку инъекции:

    • wrap_payload() оборачивает исходный запрос в UpdateXML(...), чтобы вызвать вывод на основе ошибок.
    • encode_sql_string() преобразует строки в выражения CHAR(...), чтобы избежать проблем с кавычками.

    Пофрагментное извлечение (_dump_table())

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

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

    root@kitploit:~
    python main.py --host <TARGET_IP>
    

    Необязательный вывод отладки:

    root@kitploit:~
    python main.py --host <TARGET_IP> --debug
    

    Ожидаемый вывод (заполните)

    root@kitploit:~
    └─$ python exploit.py --host <TARGET>
    
                             ]LLLLLLmmmmmLLLLLL[
                             ]LLLLLLLLLLLLLLLLL[
                             ]LLLLLLLLLLLLLLLLL[
                             ]LLLLLLLLLLLLLLLLL[
                             ]LLLLLLLLLLLLLLLLL[
             ms.             ]LLLLLLLLLLLLLLLLL[              ,m
            ]LLLLs.          ]LLLLLLLL~+LLLLLLL[           _gLLLL
            LLLLLLLL_.        LLLLLLLL  ~~\LLLL[        ,gLLLLLLLi
           dLLLLLLLLLLm_     -LLLLLLLo      LLL[      _mLLLLLLLLLL.
          iLLLLLLLLLLLLLLs.  ]LLf` ,  'c    LLL[   ,gLLLLLLLLLLLLLL
         iLLLLLLLLLLLLLLLLLLsgL`   'c-  \.    LLLLLLLLLLLLLLLLLLLLLL
        ,LLLLLLLLLLLLLLLLLLLLL!      =__/Li  iLLLLLLLLLLLLLLLLLLLLLLL
       gLLLLLLLLLLLLLLLLLLLLLL    imm_.Y~'`  LLLLLLLLLLLLLLLLLLLLLLLLL.
      dLLLLLLLLLLLLLLLLLLLLLLL     'LL_     dLLLLLLLLLLLLLLLLLLLLLLLLLLi
    ,LLLLLLLLLLLLLLLLLLLLLLLLLi        ~--__LLLLLLLLLLLLLLLLLLLLLLLLLLLLs
    'LLLLLLLLLLLLLLLLLLLLLLLLLLs.          LLLLLLLLLLLLLLLLLLLLLLLLLLLLL~
       'LLLLLLLLLLLLLLLLLLLLLLLLLL_.         LLLLLLLLLLLLLLLLLLLLLLLLf
          'LLLLLLLLLLLLLLLLLLLLLLLLLLm_       'LLLLLLLLLLLLLLLLLLLf`
             'LLLLLLLLLLLLLLLLLLLLLLLL'Lm_      LLLLLLLLLLLLLLLL`
                LLLLLLLLLLLLLLLLLLLLLL  'LL     LLLLLLLLLLLLLf
                 'LLLLLLLLLLLLLLLLLLL    L     LLLLLLLLLLL~
                   _LLLLLLLLLLLLLLL  !i   ]   ,LLLLLLLLLLLs.
               gLLLLLLLLLLLLLLLLL!   's  [ _mLLLLLLLLLLLLLLLs
             gmLLLLLLLLLLLLLLLLLLL      ~eLLLLLLLLLLLLLLLLLLLLLms
          _gLLLLLLLLLLLLLLLLLLLLLL.       'LLLLLLLLLLLLLLLLLLLLLLLs_
       _gLLLLLLLLLLLLLLLLLLLLLLLLLL_        !LLLLLLLLLLLLLLLLLLLLLLLLs.
    ,gLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLm_       YLLLLLLLLLLLLLLLLLLLLLLLLLms
     LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLs    ]LLLLLLLLLLLLLLLLLLLLLLLLLL`
      'LLLLLLLLLLLLLLLLLLLLLLLLLLL 'YL   ]LLLLLLLLLLLLLLLLLLLLLLLLf
       'LLLLLLLLLLLLLLLLLLLLLLLLLf`!   f  ,LLLLLLLLLLLLLLLLLLLLLLLL!
        'LLLLLLLLLLLLLLLLLLLLLLLLL[      LmmLLLLLLLLLLLLLLLLLLLLLLLL`
          LLLLLLLLLLLLLLLLLf  LLLLi   t  LLLLLLL  LLLLLLLLLLLLLLLLL!
          'LLLLLLLLLLLLLf     LLLL[    '*LLLLLLL    'LLLLLLLLLLLLL[
           !LLLLLLLLLf`       LLLLLs     'YLLLLL       ~LLLLLLLLLL
            LLLLLLf~          LLLLLLLs     LLLLL          ~LLLLLL`
            'LLL~             LLLLLLLLLm  iLLLLL             ~LLL~
             ~`               LLLLLLLL[LLmLLLLLL               '`
                              LLLLLL`d[ LLLLLLLL
                              LLLLLLdL[ LLLLLLLL
                              LLLLLLLLLLLLLLLLLL    Juergen Jakubowski
                              LLLLLLLLLLLLLLLLLL
                              LLLLLLLLLLLLLLLLLL   [email protected]
    
                              EXPLOIT BY ztrxwzy. 
                  INSPIRED BY THE POC FROM Baptiste Contreras.
        
    [888] Target : http://10.66.187.202:80/index.php
    [888] CSRF token : 3ec54b1b32b5dc2dd8186537821b8dc1
    [888] http://10.66.187.202:80/index.php is vulnerable to SQLi
    [888] Database version detected : 5.5.64-MariaDB
    [888] Current database : joomla
    [888] Tables in database joomla
    
    

    Авторы и благодарности

    • Автор: ztrxwzy
    • Вдохновение: части этого PoC вдохновлены работой Baptiste Contreras:
      https://github.com/BaptisteContreras/CVE-2017-8917-Joomla

    Лицензия

    Лицензия MIT Copyright (c) 2025 Jesús Caldera

    Настоящим предоставляется бесплатное разрешение любому лицу, получившему копию этого программного обеспечения и сопутствующих файлов документации (далее — «Программное обеспечение»), использовать Программное обеспечение без ограничений, включая, без ограничений, права использовать, копировать, изменять, объединять, публиковать, распространять, сублицензировать и/или продавать копии Программного обеспечения, а также разрешать лицам, которым предоставляется данное Программное обеспечение, делать это при соблюдении следующих условий:

    Вышеуказанное уведомление об авторских правах и данное уведомление о разрешении должны быть включены во все копии или значительные части Программного обеспечения.

    ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ КОНКРЕТНОМУ НАЗНАЧЕНИЮ И ОТСУТСТВИЯ НАРУШЕНИЯ ПРАВ. НИ ПРИ КАКИХ ОБСТОЯТЕЛЬСТВАХ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, ЗА УЩЕРБ ИЛИ ПО ИНЫМ ТРЕБОВАНИЯМ, ВОЗНИКАЮЩИМ ИЗ ДОГОВОРА, ДЕЛИКТА ИЛИ ИНЫМ ОБРАЗОМ, СВЯЗАННЫМ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ЕГО ИСПОЛЬЗОВАНИЕМ ИЛИ ИНЫМИ ДЕЙСТВИЯМИ С НИМ.

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