Wargame 8

fd Write-Up

1. 문제 코드 - 문제 제목처럼 fd(파일디스크립터)를 이용한 버퍼 오버플로우 문제로 보임 2. 문제 풀이 - 파일 실행 시 전달 인자는 atoi 함수를 통해 문자형 -> 정수형 으로 변환됨 - 위 설명은 기본 파일디스크립터이며 read(0,buf,len) 로 만들면 buf에 원하는 값을 입력하여 덮을 수 있기 때문에 fd를 0으로 만들기 위해서는 atoi(전달인자) - 0x1234 = 0 공식이 성립이 되야함 - 전달인자로 4660을 입력하면 atoi(4660)이 되며 0x1234는 10진수로 변환하면 4660이기 때문에 atoi(4660) - 0x1234(4660) = 0 공식이 성립되어 위 사진처럼 원하는 값을 입력할 수 있음 - 해당 if문이 참(true)이라면 flag를 획득할 수 있으므로 해..

Wargame/pwnable.kr 2021.10.18

ROP Write-Up

1. rop 1.1 파일 분석 1 - file 명령어로 rop 파일의 종류를 확인해보니 32bit ELF 파일임 - rop 파일을 실행해보니 사용자에게 입력값을 받고 'Hello, World!.' 를 출력함 - ida로 코드를 디컴파일하여 확인해보니 main 함수에는 write 함수가 존재함 - vulnerable_function 함수에는 read 함수가 존재함. 이를 통해 write함수로 출력, read함수로 입력이 가능하여 ROP공격 기법을 사용할 수 있음 1.2 poc - 5번째 줄 : remote로 워게임 서버에 접속하기 위한 코드 - 6번째 줄 : 해당 프로그램의 함수 주소를 쉽게 사용할 수 있도록 해주는 코드 - 7번째 줄 : 라이브러리 주소를 쉽게 사용할 수 있도록 해주는 코드 - 9번째 줄..

Wargame/HackCTF 2021.09.30

RTL_World Write-Up

1. rtl_world 1.1 파일 분석 1 - file 명령어로 rtl_world 파일의 종류를 확인해보니 32bit ELF 파일임 - rtl_world 파일을 실행했을때 얻을 수 있는 정보를 4가지로 나누어 정리함 ① System Armor와 Shell Sword를 갖게 된다면 Binary Boss를 kill할 수 있음 ② 현재 갖고있는 골드 현황을 표시해줌 ③ 선택할 수 있는 메뉴를 보여줌 ④ 사용자가 번호를 입력하여 원하는 메뉴에 진입할 수 있음 1.2 메뉴 1.2.1 메뉴 1 (Information the Binary Boss!) - 해당 바이너리의 메모리 보호기법 적용 여부와 Binary Boss에 대한 정보를 출력함 1.2.2 메뉴 2 (Make Money) - 1번~3번 메뉴가 추가로 존재..

Wargame/HackCTF 2021.09.19

x64 Simple_size_BOF Write-Up

1. x64 Simple_size_BOF 1.1 파일 분석 - file 명령어로 Simple_size_bof 파일의 종류를 확인해보니 64bit ELF 파일임 - Simple_size_bof 파일을 실행해보니 '삐빅 - 자살방지 문제입니다.'를 출력하며 메모리 주소값으로 출력되는 buf문을 출력하며 입력값을 받음 - ida로 코드를 디컴파일하여 확인해보니 2가지 포인트를 알 수 있었음 point 1. printf함수에서 %p(포인터)를 통해 v4변수의 시작 주소를 출력함 point 2. get함수를 통해 v4에 27952bytes 보다 많은 값을 입력받을 수 있음 - ASLR이 적용되어 있지만 바이너리를 실행하면 v4 변수의 시작 주소를 출력하기 때문에 shellcode를 삽입하여 RTS(Return T..

Wargame/HackCTF 2021.09.16