Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2020-25867 — CVE-2020-25867에 대한 개념 증명 익스플로잇으로, PHP 타입 저글링 우회를 통해 SoPlanning 캘린더 공유 키 인증을 우회하는 방법을 시연합니다. | Kitploit
도구/GitHubGitHub/thomasfady/cve-2020-25867
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & Education
GitHubthomasfady/cve-2020-25867

CVE-2020-25867

CVE-2020-25867에 대한 개념 증명 익스플로잇으로, PHP 타입 저글링 우회를 통해 SoPlanning 캘린더 공유 키 인증을 우회하는 방법을 시연합니다.

저장소 보기
4년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2020-25867 : SoPlanning 공유키 우회

정보

  • 취약한 버전 : 1.46.01
  • 수정된 버전 : 1.47 이상
  • CVE : CVE-2020-25867

타임라인

  • 26/06/2020 : 이 취약점 보고서가 공급업체에 전송됨
  • 21/07/2020 : 취약점이 수정됨

위험

공유키 시스템은 PHP 타입 저글링 공격에 취약하며, 공격자가 공유키를 모르고도 캘린더의 내용에 접근할 수 있습니다.

요구사항

취약해지려면 캘린더 공유키가 활성화되어 있어야 합니다.

공유키 활성화

이 공유가 활성화되면, 사용자는 공유키를 사용하여 인증 없이 캘린더에 접근할 수 있습니다.

정상 동작

물론 키가 잘못되면 접근이 거부됩니다.

익스플로잇

키 검증은 파일 "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)

str1이 str2보다 작으면 < 0을 반환하고; str1이 str2보다 크면 > 0을 반환하며, 같으면 0을 반환합니다.

이 함수는 매개변수 중 하나가 배열이면 "NULL"을 반환합니다.

PHP 타입 비교 테이블에 따르면, "NULL"과 0 사이의 비엄격 비교는 true입니다.

따라서 **$_GET['cle']**이 배열이면 조건 결과는 true가 되고 접근이 승인됩니다.

이 링크는 **$_GET['cle']**을 배열로 정의합니다: https://demo.soplanning.org/planning.php?public=1&cle[]=

익스플로잇

접근이 "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';
  }
}
도구 다운로드