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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2020-25867 | Kitploit
Инструменты/GitHubGitHub/thomasfady/cve-2020-25867
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и Образование
GitHubthomasfady/cve-2020-25867

CVE-2020-25867

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

Популярное

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

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

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

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

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

CVE-2020-25867 : SoPlanning — обход ключа общего доступа

Информация

  • Уязвимая версия : 1.46.01
  • Исправленная версия : 1.47 и выше
  • CVE : CVE-2020-25867

Хронология

  • 26/06/2020 : Этот отчёт об уязвимости был отправлен вендору
  • 21/07/2020 : Уязвимость исправлена

Риски

Система ключей общего доступа уязвима к атаке PHP Type Juggling (подмене типов), что позволяет злоумышленнику получить доступ к содержимому календаря, не зная ключа общего доступа.

Требования

Чтобы система была уязвимой, должна быть включена функция ключа общего доступа к календарю.

EnableSharingKey

После включения общего доступа пользователь может получить доступ к календарю без аутентификации, используя ключ общего доступа.

NormalBehavior

Разумеется, если ключ неверен, доступ запрещён.

Эксплуатация

Проверка ключа находится в файле "includes/header.inc"

root@kitploit:~
if ( CONFIG_SOPLANNING_OPTION_ACCES == 2 && isset($_GET['public']) && isset($_GET['cle']))
{
  if (strcmp($_GET['cle'],CONFIG_SECURE_KEY)==0)
  {
    $_SESSION['public']=1;
    $_SESSION['user_id']='publicspl';
  }
}

Функция strcmp используется с нестрогим сравнением. Результат этого сравнения зависит от следующего: таблицы сравнения типов PHP

Результат функции strcmp описан в документации : [strcmp]'https://www.php.net/manual/en/function.strcmp.php)

Возвращает < 0, если str1 меньше str2; > 0, если str1 больше str2, и 0, если они равны.

Эта функция возвращает "NULL", если один из параметров является массивом.

Согласно таблицам сравнения типов PHP, нестрогое сравнение между "NULL" и 0 равно true

Таким образом, если $_GET['cle'] является массивом, результат условия равен true, и доступ разрешён.

Эта ссылка определяет $_GET['cle'] как массив : https://demo.soplanning.org/planning.php?public=1&cle[]=

Exploit

Доступ предоставляется под именем "Invité"

Исправление

Для исправления этой уязвимости можно использовать строгое сравнение:

root@kitploit:~
if ( CONFIG_SOPLANNING_OPTION_ACCES == 2 && isset($_GET['public']) && isset($_GET['cle']))
{
  if (strcmp($_GET['cle'],CONFIG_SECURE_KEY)===0)
  {
    $_SESSION['public']=1;
    $_SESSION['user_id']='publicspl';
  }
}

Или сравнение можно выполнить без функции strcmp.

root@kitploit:~
if ( CONFIG_SOPLANNING_OPTION_ACCES == 2 && isset($_GET['public']) && isset($_GET['cle']))
{
  if ($_GET['cle'] === CONFIG_SECURE_KEY)
  {
    $_SESSION['public']=1;
    $_SESSION['user_id']='publicspl';
  }
}
Скачать инструмент