본문 바로가기

분류 전체보기

hitcon 2016 house of orange house_of_orange 2016 hitcon house of orange일단 문제 풀이를 들어가기 전에 알게된 것들을 정리하고자 한다.이런 상황에서 malloc(0x10)을 하게 되면 다음과 같은 상황이 발생한다.물론 ubuntu 16.04 LTS glibc 2.23 기준이지만 glibc malloc에서도 데이터가 그대로 남아있을 줄은 몰랐다.. 또, unsorted bin 혹은 small bin, large bin에서 large bin을 할당받았을 때, 할당과 동시에 그 자리에 fd, bk, fd_nextsize, bk_nextsize가 생성 된다.왜 이러는지는 아직은 잘 모르겠다.이런 상황에서 0x400 크기의 heap을 할당하면 다음과 같이 할당과 동시에 정보들이 기록된다.. free된 것도 .. 더보기
pwnable.tw babystack 보호되어 있는 글입니다. 더보기
pwnable.tw death note 보호되어 있는 글입니다. 더보기
pwnable.tw starbound 보호되어 있는 글입니다. 더보기
pwnable.tw spirited_away 보호되어 있는 글입니다. 더보기
pwnable.tw tcache tear 보호되어 있는 글입니다. 더보기
pwnable.tw seethefile 보호되어 있는 글입니다. 더보기
2015 rctf welpwn welpwn 2015 rctf welpwnputs로 leak이 안돼서 어리둥절 하고 있었는데 그 이유는got 값 1바이트가 \x00이기 때문이었다.. 주의하십쇼 main에서 0x400만큼 입력을 받고 echo 함수의 버퍼에 복사해 주는데 여기서 오버플로우가 일어난다.근데 BYTE 형태로 조건문이 되어있어 한 바이트만 ret을 덮어씌울 수 있다. main의 buf가 바로 아래에 있어 이를 이용하여 rop를 때릴 수 있다. from pwn import *​#context.log_level = 'debug'​e = ELF('./welpwn')s = process(e.path)l = ELF('/lib/x86_64-linux-gnu/libc.so.6')​ru = lambda x: s.recvuntil(x)sl =.. 더보기