WAR GAME 149

[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

[dreamhack : pwnable] basic_rop_x64 풀이

문제 풀이 환경 : ubuntu 16.04.7 64bit에서 ROP 문제이다. main에서 bof가 발생하고 있다. buf 크기는 0x40이지만 read로 0x400을 읽으려고 하고 있다. 페이로드를 총 두 번 짤 것이다. 첫 번째 페이로드는 libc_base를 구하기 위함이다. libc_base를 구하기 위해 read함수의 실제 주소를 leak한다. 그리고 RET를 main으로 줘서 main이 한 번 더 돌게 한다. 두 번 째 페이로드에서 RET에 system함수를 넣어 진짜 쉘을 딸 것이다. 첫 번째 payload : read 함수의 실제 주소 leak read 함수의 실제 주소를 leak하기 위해서는 어떻게 해야 할까? 출력하는 함수 인자로 read함수 got를 주면 read 함수의 실제 주소가 출..

WAR GAME/dreamhack 2021.01.20