WAR GAME/HackCTF 43

[HackCTF : Pwnable] Simple_Overflow_ver_2 풀이 (32bit, shellcode)

문제 풀이 환경 : ubuntu 20.04 사용 툴 : IDA 7.5 pro Analysis scanf에서 BOF가 터진다. 그리고 buf 주소를 친절하게 출력해 준다. 이게 끝이다. 이전문제랑 걍 똑같다. How to exploit 보호기법도 클린하니 쉘코드를 이용하면 될 것 같다.(NX disabled) (이전문제랑 똑같아서 아무생각없이 64bit shellcode를 넣었었는데 이 문제는 32bit이다; 방심 ㄴㄴ;) payload = 쉘코드 + dummy + SFP + RET(쉘코드 주소) RET에는 쉘코드 자체가 아니라 쉘코드 주소가 들어가야하는 것을 명심명심 Let's exploit from pwn import * #p = process('./Simple_overflow_ver_2') p = r..

WAR GAME/HackCTF 2021.03.09

[HackCTF : Pwnable] x64 Simple_size_BOF 풀이 (64bit, shellcode)

문제 풀이 환경 : ubuntu 20.04 사용 툴 : IDA 7.5 pro Analysis 자살 방지 문제란다. 대놓고 gets에서 BOF가 터진다. buf 주소도 친절하게 출력해준다. 이것과 BOF가 터지는 것을 이용하면 될 것 같다. How to exploit 보호기법도 클린하니 쉘코드를 이용하면 될 것 같다.(NX disabled) payload = 쉘코드 + dummy + SFP + RET(쉘코드 주소) RET에는 쉘코드 자체가 아니라 쉘코드 주소가 들어가야하는 것을 명심명심 Let's exploit from pwn import * #p = process('./Simple_size_bof') p = remote('ctf.j0n9hyun.xyz', 3005) e = ELF('./Simple_siz..

WAR GAME/HackCTF 2021.03.09

[HackCTF : Pwnable] x64 Buffer Overflow 풀이 (64bit, BOF)

문제 풀이 환경 : ubuntu 16.04 사용 툴 : IDA 7.5 pro Analysis 대놓고 scanf에서 BOF가 터진다. How to exploit payload = dummy + SFP + RET RET를 callMeMaybe 함수로 덮는다! Let's exploit from pwn import * #p = process('64bof_basic') p = remote('ctf.j0n9hyun.xyz', 3004) e = ELF('./64bof_basic') callMeMaybe = 0x400606 payload = '' payload += 'A' * 272 payload += 'BBBBBBBB' # SFP payload += p64(callMeMaybe) # RET p.sendline(pay..

WAR GAME/HackCTF 2021.03.05

[HackCTF : Pwnable] 내 버퍼가 흘러넘친다!!! 풀이 (32bit, ROP)

문제 풀이 환경 : ubuntu 20.04 사용 툴 : IDA 7.5 pro 처음에 ROP로 풀까 생각하다가 libc 파일이 없기도하고(버전 찾기 귀찮) 마침 NX bit도 없어서 shellcode 박았다. 하지만 공부를 위해 ROP 기법을 이용하여 풀었다. 자세한(?) 분석은 아래 참고 [HackCTF : Pwnable] 내 버퍼가 흘러넘친다!!! 풀이 (shellcode) [HackCTF : Pwnable] 내 버퍼가 흘러넘친다!!! 풀이 (shellcode) 문제 풀이 환경 : ubuntu 20.04 사용 툴 : IDA 7.5 pro 150점으로 넘어갔다. 갑자기 생각보다 어려워져서(?) 깜짝 놀랐다ㅋㅋㅋ;; 주어진 파일은 문제 바이너리 파일 뿐이다. IDA로 까보자. Analysis main 함수..

WAR GAME/HackCTF 2021.03.05

[HackCTF : Pwnable] 내 버퍼가 흘러넘친다!!! 풀이 (shellcode)

문제 풀이 환경 : ubuntu 20.04 사용 툴 : IDA 7.5 pro 150점으로 넘어갔다. 갑자기 생각보다 어려워져서(?) 깜짝 놀랐다ㅋㅋㅋ;; 주어진 파일은 문제 바이너리 파일 뿐이다. IDA로 까보자. Analysis main 함수 볼 게 main 밖에 없다. main을 살펴보자. gets 함수에서 대놓고 bof가 일어난다. 왜냐하면 gets 함수는 문자열을 입력받지만 문자열을 담을 공간의 길이와 입력받은 문자열의 길이를 확인하지 않기 때문! 아 참고로 name은 전역 변수이다. How to exploit 보호기법을 확인해보면 NX bit가 설정되어 있지 않다. 이 뜻은 쉘코드를 실행시키라는 의미다. 처음에 바보같이 ret에 바로 쉘코드를 넣어주었다. 진짜 바보같다. 상식적이지 않은 행동이다..

WAR GAME/HackCTF 2021.03.04

[HackCTF : Pwnable] Basic_FSB 풀이 (32bit, FSB)

문제 풀이 환경 : ubuntu 20.04 사용 툴 : IDA 7.5 pro 문제 푸는 경험?이 부족한 것 같아서 HackCTF 포너블 파트를 공략해보려고 한다. 롸업을 최대한 보지 않고 푸는 것이 목표다. 주어진 파일은 문제 바이너리 파일 뿐이다. IDA로 까보자. Analysis flag 함수 사실 가장 먼저 보인건 저 flag 함수 ㅎㅎ... 보니까 그냥 "/bin/sh" 실행시켜준다 main 함수 vuln 함수 주목해야할 건 vuln 함수이다. 저기서 fsb가 터진다. 취약한 line은 8번 9번 라인이다. 포맷스트링을 사용하지 않기 때문! int snprintf (char *buffer, int buf_size, const char *format, ...) 참고로 BOF는 일어나지 않는다. fo..

WAR GAME/HackCTF 2021.03.04

[HackCTF : Pwnable] Basic_BOF #2 풀이

문제 풀이 환경 : ubuntu 16.04.7 베이직 오버플로우.. 간단한 오버플로우 문제일 것 같다. 문제 환경에 접속하여 일단 실행시켜 보았다. 오.... 당황했지만 IDA로 까보기로 한다. main 함수이다. v5에 sup????을 할당하고 s를 133byte 입력받는다. 그리고 v5를 실행시킨다. sup 함수가 뭘까?? 뭐야.. s를 출력한다. 결론은 v5에 s를 출력하는 함수를 할당하고. fgets 함수에서 s를 13byte 입력받고, v5를 실행시켜 s를 출력한다. 아 참고로 이 s는 main에 있는 s와 다르다. 이 s를 IDA에서 주소값을 확인해서 출력해보면 저런 문자가 저장되어 있다. ebp에서 얼마나 떨어져있냐..를 토대로 메모리 스택은 이런 구조일 것을 예측할 수 있다. s는 128b..

WAR GAME/HackCTF 2020.09.22