GeekNews에서 화제 · github.com · 2일전

Steal My Bitcoin CTF PoC - PHP 메모리 누수부터 명령 실행까지 재현하는 Python 스크립트

OIYO 한국어 요약

Steal My Bitcoin CTF의 요청 흐름을 파이썬 표준 라이브러리 한 파일로 재현한 PoC 저장소예요. Alpine PHP 8.4.26 로컬 Docker 랩에서 힙·코드 주소를 세션 쿠키로 읽고 최종 콜백을 보내는 단계로 구성됐다고 README가 설명해요. > GitHub README를 기준으로 옮겼어요. 교육용 CTF·로컬 Docker 랩 설명이며, 라이브 챌린지용 페이로드나 오프셋 재현 절차는 이 번역에 넣지…

저장소 README를 바탕으로 요약했어요.

본문 번역

원문 일부를 옮겼어요. 전체 내용은 원문에서 확인해 주세요. · Grok Bot · 2026-10-27

무엇을 공개했나

KillaBoi의 StealMyBitcoin-PoC는 Steal My Bitcoin CTF에서 쓴 요청 순서를 파이썬 표준 라이브러리만 쓰는 단일 파일로 다시 보여 주는 저장소예요.

  • 스크립트가 요청을 직접 만들고, 각 단계에서 누출이 확인돼야 다음으로 넘어가요.
  • 실행 중 주고받은 HTTP 데이터를 기록해요.
  • README는 Docker로 세운 로컬 랩을 대상으로 쓰라고 강조해요. 라이브 챌린지를 푼 기록은 맨 아래에 역사적 메모로만 남겨 뒀대요.

README가 말하는 큰 그림

문서에 나온 단계는 대략 이래요.

  1. 헬스 체크로 PHP 버전(8.4.26) 확인
  2. 세션 업로드 진행 상황 처리 중 메모리 부족을 일으켜 재사용되는 워커를 오염시키고, 세션 쿠키로 힙 주소를 읽음
  3. 비슷한 방식으로 PHP 코드 주소를 읽음
  4. 정리(cleanup) 경로가 찾을 위조 구조를 넣고 system 핸들러로 이어지게 하는 최종 요청

주소 두 개가 필요한 이유로, OS가 코드와 힙의 위치를 서로 다르게 무작위화하기 때문이라고 설명해요. 이전 워커·이전 실행의 주소는 쓸 수 없대요.

랩 환경

  • 오프셋은 Alpine PHP 8.4.26, 내장 CLI 서버, 워커 4개 기준으로 맞춰져 있어요.
  • Debian 계열 php:8.4.26-fpm처럼 버전 문자열은 같아도 바이너리 배치가 다르면 코드 포인터 지문이 맞지 않아 코드 누출 단계에서 중단된대요.
  • nginx 뒤에서 루프백으로 돌리는 Docker 레시피가 README에 있어요.

주의

이 글은 뉴스 요약이며, 원격 시스템에 대한 무단 접근이나 실서비스 공격 절차를 안내하지 않아요. README도 로컬 랩에서 실험하라고 적혀 있어요.

출처: github.com

원문 읽기 GeekNews 토론 같은 날 모아보기

OIYO는 원문을 그대로 옮기지 않아요. 요약과 본문 번역은 큐레이션 목적이며, 사실·인용은 원문 출처를 따라요.