본문 바로가기

pwnable3

[Pwnable] Gadget 구하기 ROPgadget (POP RET Gadget) $ ROPgadget --binary [실행 파일] | grep "pop rdi" 0x0000000000000aa3 : pop rdi ; ret objdump (.bss Section) $ objdump -h [실행 파일] | grep .bss 23 .bss 00000020 0000000000201010 0000000000201010 00001010 2**4 $ bss = 0x0000000000201010 One Gadget / Magic Gadget $ one_gadget /lib/x86_64-linux-gnu/libc-2.31.so 0xe6c7e execve("/bin/sh", r15, r12) constraints: [r15] == NULL || r1.. 2022. 1. 29.
[pwnable.kr] fd flag는 권한이 없어 읽지 못하고, fd.c 파일은 읽을 수 있다. 인자값을 받아서 0x1234와 연산을 하고, read함수로 결과값을 준다. read함수는 scanf 함수처럼 사용할 수 있으며, read(0, buf, 32); 형식으로 작성하면 된다. 인자값으로 0x1234의 10진수인 4660을 넣어주면 입력을 할 수 있다. flag : mommy! I think I know what a file descriptor is!! 2022. 1. 9.
[Pwnable] Fake EBP 정리 [Fake EBP] ebp를 속이는 기법으로 sfp를 조작 가능하고, ret의 값을 leave / ret 가젯의 주소로 변경이 가능할 때 이용한다.즉, ebp를 속이고 leave / ret를 한번더 실행시키는 기법 이 기법의 핵심은 함수의 에필로그 부분을 이용하는 것이다 leavemov esp, ebppop ebp retpop eipjmp eip 원리1. (leave) mov esp, ebp 를 통해서 esp를 ebp로 이동시킨다.2. (leave) pop ebp 를 통해 변조된 ebp를 꺼낸다.3. (ret) pop eip 를 통해 eip는 leave / ret 를 가리킨다. 즉, ret에 leave / ret 가젯이 들어있어야한다.4. (ret) jmp eip 를 통해 leave / ret 가 한번더.. 2018. 11. 6.