Wargmae
[HackCTF - offset]
Excute 먼저 문제로 주어진 파일을 실행시키면 어떤 함수를 호출할지 물어보고 값을 입력해주면 종료된다. 아마 취약점을 찾아 shell을 띄우거나 플래그를 출력할 수 있는 함수를 호출 해주면 될 것 같다. 적용되어있는 보호기법은 아래와 같다. Analyze IDA에 올려서 프로그램의 실행 흐름을 분석해보자 Main Line 9 : gets함수를 통해 길이를 제한하지 않고 입력을 받는다. Line 10 : select_func 함수에 앞서 입력받은 값을 인자로 전달해 준다. Select_func Line 3,4 : char형 변수 dest와 함수 포인터 v3를 선언해준다. Line 6 : v3포인터 변수에 함수 two의 주소를 대입한다. Line 7 : strncpy함수를 호출에 인자로 받은 src를 0..
[Hack CTF - Basic_BOF # 1]
Execute 문제 파일을 실행하면 입력을 받고 buf에 들어간 내용을 출력해준 후 check 0x4030201을 출력하여 뭔가의 주소를 출력해준다. 또한 내가 buf에 입력하는 내용이 너무 길다면 buffer overflow가 발생하여 check의 내용이 0x61(a)로 채워지는 것을 알 수 있다. Analyze 1번 문제인 만큼 NXbit 말고는 보호기법이 걸려있지 않다. 그럼 프로그램의 동작을 분석하기 위해 해당 파일을 IDA에 올려서 확인해보자. Main Line 6 : v5변수에 57305985를 대입해준다. Line 7 : fgets함수를 통해 s변수에 45의 길이 만큼 입력을 받는다. Line 8,9 : 앞서 입력한 s변수와 v5의 내용을 출력해준다. Line 10,11 : v5가 67305..
[Pwnable.xyz - TLSv00]
Excute 먼저 다운로드 한 파일을 실행시키면 다음과 같은 형태의 프로그램이 실행 된다. Key-generate와 load flag 그리고 print flag를 선택해 줄 수 있으나 당연히 2번이나 3번 옵션을 실행하면 flag를 노출시키지 않는다. 2번의 경우 can’t open flag 를 출력하고 프로그램이 종료되며 3번 옵션의 경우 WARNING: NOT IMPLEMENTED를 출력하고 Wanna take a survey instead?를 출력하는데 아무 값을 입력하지 않아도 Segmentaion fault가 나온다. Analyze 먼저 문제 파일에 어떤 보호기법이 걸려있는지 조회하기 위해 gdb에 올려 checksec명령을 진행하여 확인하였다. 그리고 Hex-ray에 올려 main 함수를 확인..
[Pwnable.xyz - Welcome]
Excute 먼저 문제로 주어지는 파일을 실행시키면 아래와 같이 나타난다. 먼저 특정 주소값을 Leak해주고 메시지의 길이와 메시지를 입력 받고 입력 받은 문자열이 출력 된 후 프로그램이 종료 된다. Analyze 먼저 gdb-peda에 문제 파일을 올려 보호기법을 먼저 확인해본다. CANRY, NXbit등 거의 모든 보호기법이 적용 되어있는 것을 확인할 수 있다. 따라서 일단은 IDA-pro를 사용해 코드를 살펴보자. IDA-pro를 통해 hex-ray를 사용하여 디컴파일 시켜 준 결과이다. 프로그램의 전체적인 구조를 파악해보면 다음과 같다. 14번 line을 보면 v3변수에 0x4000만큼 malloc을 이용해 할당해준다. 또한 15번 line에서 아까 할당한 v3에 1을 대입해준다. 16번 line..