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 рабочем процессе.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
26 месяцев назадЕщё не проверено

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] равным вредоносной полезной нагрузке.
  2. Используйте функции на основе ошибок (например, UpdateXML), чтобы заставить базу данных выводить результаты.
  3. Разберите ответ (в этом PoC — тег <title>) и извлеките внедрённый вывод.
  4. Перебирайте запросы для перечисления версии, имени базы данных, таблиц, столбцов и строк.

Ключевые фрагменты кода

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

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

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

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

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

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