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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2020-28874 — CVE-2020-28874 | Kitploit
Инструменты/GitHubGitHub/varandinawer/cve-2020-28874
Повышение привилегийАтаки на ПаролиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на Проникновение
GitHubvarandinawer/cve-2020-28874

CVE-2020-28874

CVE-2020-28874

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

Популярное

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

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

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

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

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

Этот репозиторий содержит описание найденной уязвимости (CVE-2020-28874) в ProjectSend релиз r1270.

Спасибо моим коллегам из Entelgy Innotec Security за то, что подтолкнули меня к улучшению!

CVE-2020-28874: повышение привилегий

Описание

Уязвимость находится в компоненте сброса пароля: злоумышленник может изменить пароль любого известного пользователя по его имени пользователя, например admin, без действительного токена.

Это возможно, потому что бэкенд не очищает $user_data данными пользователя, загруженными из предоставленного имени пользователя.

root@kitploit:~
 if (!empty($_GET['token']) && !empty($_GET['user'])) {
        $got_token	= $_GET['token'];
        $got_user	= $_GET['user'];

        /**
         * Get the user's id
         */
        $user_data = get_user_by_username($got_user);
        ....
        }

И использует состояние этой переменной для продолжения процесса сброса пароля.

root@kitploit:~
    if ($_POST) {
        /**
         * Clean the posted form values.
         */
        $form_type = encode_html($_POST['form_type']);
        
        switch ($form_type) {
        ----
            case 'new_password':
                if (!empty($user_data['id'])) {
                    $reset_password_new = $_POST['password'];
                    ...
                }
        ...
        }

Атака

Для этого злоумышленнику нужно сформировать POST-запрос с недействительным параметром "token" и параметром "user" с именем целевого пользователя в строке запроса, а также добавить в тело запроса "form_type" как "new_password", "password" с желаемым новым паролем и csrf_token с действительным значением (из формы входа; форма сброса пароля его не предоставляет).

В этом репозитории вы можете найти python-скрипт для эксплуатации уязвимости и docker-контейнер для её тестирования.

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

root@kitploit:~
git clone https://github.com/varandinawer/CVE-2020-28874_CVE-2020-28875.git
cd ./CVE-2020-28874_CVE-2020-28875/docker-r1270
docker-compose up 
#To finish the process of ProjectSend installation, go to http://localhost in the browser and follow the indication to setup an admin account
cd .. 
python CVE-2020-28874.py --url http://localhost --user admin --pwd newAdminP4ssword*

Исправление

Обновитесь до версии r1295 или выше.

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