* 매개변수를 접근할 땐 ebp를 기준으로 접근한다. (ebp를 변경가능하면 매개변수 컨트롤 가능)


* leave ret

leave : mov esp, ebp; pop ebp

ret : pop eip; jmp eip


* gdb

- info reg : 레지스터 정보 보는 명령어

- info proc mapping : 메모리 맵핑 정보를 보는 명령어

- info proc exe 하면 pid가 나오는데 shell cat /proc/{pid}/maps를 입력하면 메모리 맵핑 정보와 rwx 권한을 볼 수 있음


* ldd : 라이브러리 의존성 확인 명령어

$ ldd ./binary | grep libc

libc.so.6 => /lib/libc.so.6 (0x40018000)


* nm : 오브젝트 파일에 포함되어 있는 심볼 리스트 출력 명령어

$ nm /lib/libc.so.6 | grep __execve

00091d48 t __execve


* ROP 가젯 찾기

objdump -s binary | grep c0 --color=auto

objdump -d binary | grep ret -B 3 --color=auto


* gdb ASLR 옵션 끄기

show disable-randomization

set disable-randomization off

'TipNote > Pwnable Tip' 카테고리의 다른 글

Pwnable 팁  (0) 2018.07.11
[Pwnable] Format String Bug 팁들  (3) 2017.07.23

## Format String Bug 팁들


1. 스택 내 멀리 있는 주소의 값을 printf("%x%x...%x")로 찍어내지 않고 한 번에 출력하는 방법

=> printf("%길이$08x") -> ex) printf("%1337$08x")

=> 위와 같이 fsb를 터뜨리면 스택에 1337번째의 값을 HEX값으로 출력해줌(info leak할때 사용)


2. 스택 내 멀리 있는 주소의 값에 printf("%x%x...%x%n")로 주소 값 변조를 하지 않고 한 번에 변조를 하는 방법

=> printf("%길이$n") -> ex) printf("%12$n")

=> 위와 같이 fsb를 터뜨리면 스택의 12번째의 값에 저장되어 있는 주소에 앞에 출력된 바이트 수만큼 덮어씌울 수 있음.



출처: http://holinder4s.tistory.com/29 [holinder4S]

'TipNote > Pwnable Tip' 카테고리의 다른 글

Pwnable 팁  (0) 2018.07.11
[Pwnable] Format String Bug 팁들  (3) 2017.07.23
  1. 주현범 2017.08.02 23:20

    제가 블로그를 정말 운영하고싶은데요.
    초대장이 없어서 가입을 못하고 있습니다.
    제발 초대장좀 주세용~
    dailyme@daum.net

  2. 2017.08.08 09:25

    비밀댓글입니다

  3. 2017.08.24 18:18

    비밀댓글입니다

+ Recent posts