[Dreamhack] sint

pandas·2024년 11월 18일
0

Dreamhack

목록 보기
13/14

00. 문제 파일

01. 바이너리 분석

main함수

get_shell함수가 있으니 rao정도 하면 될 것 같다

보호 기법이 거의 안 걸려있다

코드 분석을 해보면

  1. Size를 입력
  2. Size-1만큼 Data입력

v5에 입력을 받는데, 256만큼 할당되어있고, size257이상을 입력받으면 프로그램이 종료된다

02. 공격 시나리오

여기서 주의해야할 점은 size-1만큼의 버퍼를 입력받는다는 것이다
size>=257로 필터링 하므로, "음수 필터링을 하지 않는다"

if)
size <-0 (필터링에 걸리지 않음)
data -< size-1만큼 입력 == -1만큼 입력을 받도록 함
컴퓨터에서 -1은 보수 표현으로 엄청나게 큰 수로 취급된다

size0을, Databofget_shell함수 주소를 넣어서 rao를 하면 된다

03. Exploit


04. Review

처음에는 안전해보였는데, -1이 핵심이였다
rao는 쉬워서 5분?도 안걸려서 풀었다
단순하지만 개념을 점검하기 좋은 문제였다고 생각한다

profile
KDMHS 23 WP

0개의 댓글

관련 채용 정보