728x90
1. Basic_BOF#2
1.1 파일 분석

- file 명령어로 bof_basic2 파일의 종류를 확인해보니 32bit ELF 파일임

- bof_basic2 파일을 실행해보니 어떤 값을 입력하던 하아아아아아아아아앙 을 출력함

- ida에서 함수목록을 확인해보니 shell 함수가 존재하는 걸 확인할 수 있음

- shell 함수를 ida로 확인해보니 /bin/bash를 실행해주는 함수이며 shell 함수를 실행시키는 것이 이 문제의 목표임

- main 함수에서 문자형으로 128bytes를 s함수에 할당해주었지만 fgets함수에서 128을 넘어선 133의 크기를 입력할 수 있는 버퍼오버플로우 취약점으로 보이는 코드가 존재함
1.2 poc

- 5번째 줄 : remote로 워게임 서버에 접속하기 위한 코드
- 7번째 줄 : 해당 프로그램의 함수 주소를 쉽게 사용할 수 있도록 해주는 코드
- 10번째 줄 : 문자형으로 선언된 s변수의 128bytes를 덮기 위한 코드
- 11번째 줄 : 32비트 환경에서 사용할 수 있는 shell 함수의 주소를 대입하는 코드
- 13번쨰 줄 : payload 코드를 확인하기 위한 출력문 코드
- 15번째 줄 : payload에 담긴 값을 대상 서버에 전송하는 코드
- 17번째 줄 : 대상과 지속적으로 통신하기 위한 코드
1.3 결과

- 위에 작성한 코드(poc)로 flag를 따낼 수 있었음
'Wargame > HackCTF' 카테고리의 다른 글
ROP Write-Up (0) | 2021.09.30 |
---|---|
RTL_World Write-Up (0) | 2021.09.19 |
x64 Simple_size_BOF Write-Up (0) | 2021.09.16 |
내 버퍼가 흘러 넘친다!!! Write-Up (0) | 2021.09.16 |
x64 Buffer Overflow Write-Up (0) | 2021.09.08 |