rao
stack smashing protector
return to shellcode
return to library
return to oriented programing
basic_exploitation_000
basic_exploitation_001
basic_rop_x64
basic_rop_x86
basic_exploitation_002
use after free
double free
double free bug
double free bug
type error
cmd_center
ROP chaining
master canary
master canary
__environ
format string bug
house of force
format string bug
get_shell 함수를 실행하는 것이 목표이다. main에서 read하고 cpy에서 strcpy하는 것을 보아, SFP 1바이트는 접근이 가능한 것을 알 수 있다. Frame Pointer Overflow 이 문제를 풀면서 처음 접하게 된 방법이다. 내가 이해한
bof
buffer over flow
buffer overflow
code system 함수를 통해 명령어를 실행하는 파일이다. center_name을 크기에 비해 크게 받기 때문에 buffer overflow가 예상된다. 하지만 canary같은 역할을 하는 cmd_ip의 'ifconfig'때문에 이를 우회하고 cat flag를 실
flag_buf: [ebp-0x44] my_page: [ebp-0x58] 구조체 mypage에 name과 age를 꽉 채운다. 그러면 나중에 name을 프린트할 때 flagbuf까지 출력될 것이다. flag_buf에 flag 값을 담는다. my_page의 값들을 출력
code 1 book을 borrow한다. 3 처음 빌린 book을 return한다. 여기서 free는 하지만 값은 남아있을 것이다. 256 book을 steal한다. steal하고 싶은 book을 '/home/pwnlibrary/flag.txt'로 하고, malloc
hook overwrite
code 바이너리 파일을 열어보자 우리가 shell을 딸 때 이용할 만한 함수가 없다. 하지만 우리는 라이브러리 파일을 갖고 있기 때문에 BOF로 return address를 one gadget으로 덮는 방법을 고려할 수 있다. stdout의 offset으로 lib
out of bound
format string bug
rop chaining
hook overwrite
code get_shell 함수를 실행해야 한다. canary가 들어있기 때문에 Name을 크게 넣을 때 이를 고려해서 넣어야 한다. case P에서 box[idx]를 읽을 수 있는데, box는 [rbp-0x88]이고 canary는 [rbp-0x8]이므로 idx를 잘
code 보호기법은 아무것도 걸려있지 않다. 그러면 buf에 shellcode를 담고, return address를 buf로 되돌아가도록 만들면 되겠다. 32비트 환경인 것을 기억하자. exploit
heap overflow