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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-34096 — Easy File Sharing Web Server 7.2의 SEH 기반 버퍼 오버플로우로, 비밀번호 복구 엔드포인트를 통해 도달 가능합니다. | Kitploit
도구/GitHubGitHub/themalwareguardian/cve-2025-34096
Vulnerability AnalysisExploitationReverse EngineeringShellcodeWeb Application ExploitationPenetration TestingLearning & EducationPayload DevelopmentBinary Exploitation
GitHubthemalwareguardian/cve-2025-34096

CVE-2025-34096

Easy File Sharing Web Server 7.2의 SEH 기반 버퍼 오버플로우로, 비밀번호 복구 엔드포인트를 통해 도달 가능합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🐞 CVE-2025-34096: Easy File Sharing Web Server 7.2 - 스택 기반 버퍼 오버플로우 (SEH)

Easy File Sharing Web Server 7.2의 비밀번호 복구 엔드포인트를 통해 도달 가능한 SEH 기반 버퍼 오버플로우입니다.




📑 목차

  • 이 저장소가 존재하는 이유
  • 이 취약점이 흥미로운 이유
  • 컨텍스트 및 영향받는 소프트웨어
  • 취약점 정보
  • 크래시 유발
  • 익스플로잇



🎓 이 저장소가 존재하는 이유

이 저장소는 취약점 연구와 익스플로잇 개발을 가르칠 때 사용하는 자료의 일부로 만들어졌으며, 특히 SEH(구조적 예외 처리기) 오버플로우와 ROP(리턴 지향 프로그래밍) 체인 개념을 소개할 때 활용됩니다.

이는 제 발표 **"The Path That Leads to Your First CVE"**와 관련이 있습니다. 해당 발표에서 저는 취약점 연구에는 다양한 진입점이 있으며, 레거시 소프트웨어에서 공개적으로 문서화된 CVE를 연구하는 것이 초보자에게 가장 접근하기 쉬운 경로 중 하나라고 설명합니다.

이 CVE는 완전하고 현실적인 익스플로잇 시나리오를 보여주기 때문에 선택되었습니다:

  • 대상은 공개적으로 이용 가능한 Windows 애플리케이션입니다.
  • 크래시는 단순한 EIP 덮어쓰기가 아니라 SEH 덮어쓰기와 스택 피보팅을 수반합니다.
  • 취약한 엔드포인트는 인증이 필요 없으므로, 진정한 무인증 원격 코드 실행 프리미티브입니다.
  • 익스플로잇은 선택적으로 ROP 체인을 확장하여 DEP/NX를 우회할 수 있으며, 동일한 SEH 오버플로우가 더 강화된 환경에 어떻게 적용될 수 있는지 보여줍니다.

이 사례의 목표는 입문용 버퍼 오버플로우 실습과 더 고급 익스플로잇 개발 개념 사이의 디딤돌로 사용하는 것입니다.




💡 이 취약점이 흥미로운 이유

이 취약점은 간단한 파일 공유용으로 널리 사용되었던 경량 Windows 웹 서버 애플리케이션인 Easy File Sharing Web Server 7.2에 영향을 미칩니다. 이 소프트웨어는 현대적인 보안 완화 조치를 고려하지 않고 작성되었습니다. 교육적 관점에서 이 사례가 특히 흥미로운 이유는 여러 요소가 결합되어 있기 때문입니다:

  • 취약한 엔드포인트는 POST 요청이므로 표준 HTTP 도구로 쉽게 재현할 수 있습니다.
  • /sendemail.ghp 엔드포인트는 애플리케이션의 이메일 알림 기능의 일부이며, 자격 증명 없이 원격 공격자에게 접근 가능합니다. 이는 사전 접근 권한이 필요한 취약점보다 더 큰 영향을 주는 공격 시나리오를 나타냅니다.
  • 오버플로우는 SEH 기반이므로, 크래시는 반환 주소를 직접 덮어쓰지 않습니다. 대신 스택의 구조적 예외 처리기 체인을 손상시키며, 다른 익스플로잇 기법이 필요합니다.
  • DEP 우회는 선택 사항입니다. 즉, DEP가 비활성화된 시스템에서는 직접 SEH + 짧은 점프 + 셸코드 방식으로 익스플로잇이 작동합니다. 그러나 DEP가 활성화된 경우, 로드된 모듈의 가젯을 사용하는 ROP 체인으로 익스플로잇을 확장하여 VirtualProtect를 호출하고 제어권을 넘기기 전에 셸코드 영역을 실행 가능으로 표시할 수 있습니다.

이러한 조합은 CVE-2025-34096을 현실적인 무인증 공격 시나리오에서 익스플로잇 개발 기법을 가르치기에 훌륭한 사례로 만듭니다.




🔍 컨텍스트 및 영향받는 소프트웨어

Easy File Sharing Web Server 7.2는 HTTP를 통한 파일 공유를 위해 만들어진 경량 Windows 애플리케이션입니다. 기본 파일 탐색과 사용자 계정 외에도 비밀번호 복구 기능, 즉 사용자가 이메일 주소를 입력하면 잊어버린 자격 증명을 받을 수 있는 양식을 포함합니다.

해당 양식은 /sendemail.ghp로 POST 요청을 보냅니다. Email 필드를 처리하는 핸들러는 길이 검사 없이 값을 고정 크기 스택 버퍼에 그대로 복사합니다. 이 엔드포인트는 인증이 필요 없으므로, 원격 공격자와 취약한 코드 경로 사이에는 아무런 장벽이 없습니다.

주요 기술 세부 사항:

  • 취약점 유형: 스택 기반 버퍼 오버플로우 (SEH 덮어쓰기)
  • 영향받는 버전: Easy File Sharing Web Server 7.2
  • 영향받는 엔드포인트: POST /sendemail.ghp
  • 취약한 매개변수: Email
  • 인증 필요 여부: 아니요
  • 영향: 무인증 원격 코드 실행



⚠️ 취약점 정보

Easy File Sharing Web Server는 이메일 알림 기능의 일부로 /sendemail.ghp로 전달되는 HTTP POST 요청을 처리합니다. 이 엔드포인트가 수락하는 Email 매개변수는 길이 검사 없이 로컬 스택 버퍼에 복사됩니다.

취약한 로직의 단순화된 버전은 다음과 같습니다:

char email_buffer[256];

strcpy(email_buffer, user_input);

대상 버퍼는 고정 크기이고 입력 길이가 검증되지 않으므로, Email 필드에 충분히 긴 문자열을 보내면 복사가 버퍼 끝을 넘어 쓰게 됩니다.

더 많은 데이터가 쓰이면 스택 레이아웃이 손상됩니다. 단순한 반환 주소 덮어쓰기와 달리, 오버플로우는 스택에 저장된 구조적 예외 처리기(SEH) 체인에 도달합니다. 손상된 스택의 결과로 예외가 발생하면 OS는 SEH 체인을 탐색하여 공격자가 제어하는 핸들러 주소로 제어권을 넘깁니다.

따라서 익스플로잇 흐름은 SEH 덮어쓰기 기법을 따릅니다:

  1. 긴 입력이 nSEH 및 SEH 핸들러 포인터를 포함하여 스택을 덮어씁니다.
  2. 메모리 손상으로 인해 예외가 발생합니다.
  3. OS는 덮어써진 핸들러 주소를 호출합니다.
  4. POP POP RETN 가젯을 사용하여 실행 흐름을 nSEH 영역으로 이동시킵니다.
  5. 앞으로의 짧은 점프가 SEH 레코드를 건너뛰고 실행 흐름을 셸코드 영역으로 리디렉션합니다.
  6. 셸코드가 실행됩니다.

이로 인해 이 취약점은 기본적인 EIP 덮어쓰기보다 익스플로잇이 더 복잡하지만, 실제 환경의 시나리오를 더 잘 반영합니다.




💥 크래시 유발

크래시는 /sendemail.ghp에 대한 POST 요청의 Email 매개변수에 긴 문자열을 보내 재현할 수 있습니다. 인증은 필요하지 않습니다. Python을 사용한 예시:

import socket

HOST = '127.0.0.1'
PORT = 80

request = (
	'POST /sendemail.ghp HTTP/1.1\r\n'
	'Email=' + 'A' * 5000 + '&getPassword=Get+Password'
).encode('utf-8')

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(request)
s.close()

디버거에서 실행하면 크래시 시 손상된 SEH 체인과 액세스 위반이 표시되어, 사용자 제어 데이터가 예외 처리기 포인터를 덮어썼음을 확인할 수 있습니다.




💣 익스플로잇

이 저장소의 목표는 크래시를 시연하는 것뿐만 아니라, 실제 SEH 기반 익스플로잇을 개발할 때 사용하는 방법론에 따라 전체 익스플로잇 과정을 단계별로 살펴보는 것입니다.

메인 README를 깔끔하게 유지하기 위해, 상세한 익스플로잇 노트, 스크립트, 디버거 단계는 이 저장소의 Vulnerability 📂 폴더에 배치되어 있습니다.

거기에서 이 CVE를 익스플로잇하는 데 사용된 전체 워크플로우를 찾을 수 있습니다:

  • 크래시를 식별하기 위해 Email 매개변수 퍼징.
  • 스택에서 nSEH 및 SEH의 정확한 위치를 찾기 위한 오프셋 탐색.
  • 페이로드를 손상시키는 바이트를 식별하기 위한 배드 캐릭터 분석.
  • 로드된 모듈의 POP POP RETN 가젯을 사용한 SEH 체인 덮어쓰기.
  • 셸코드 배치 및 실행.
  • 선택 사항: 로드된 모듈의 가젯을 통해 VirtualProtect를 호출하여 DEP를 우회하는 ROP 체인 구축.
도구 다운로드