티스토리 뷰
Bcloud 문제와 마찬가지로 House of Force 문제이다.
recipe를 출력해주는 함수에서 leak을 할 수 있다. 그 전에 recipe+4가 0이 아니면 인스턴스의 수를 구하는 함수가 있는데
계속 거기서 터졌다. 그래서 \x00을 124개 채워주고 leak할 값을 넣어주면 된다.
printf("recipe type: %s\n", *(recipe + 124));
물론 이것도 그냥하면 안되고
를 먼저 해줘서 UAF를 이용해 Leak을 해야한다.
뭔가 엄청 시간이 오래걸린 문제다. Top chunk를 계산할떄도 free된 chunk를 신경안쓰고 그냥 구해서 Top chunk가 잘 안구해졌다. 왜인지 계속
leak된 heap address랑 0x0804d0a0이 가르키는 값이 달라서 오래걸렸다. (그냥 계산해서 넣어도 되지만 내가 의도한 값과 똑같이 나올때까지 계속구해봤다.)
뭐 leak만 잘하면 다른건 쉽다 strtoul을 system으로 덮으면 bookname을 넣어주는 곳에서 argument를 지정해 줄 수 있다.
Top chunk를 덮을 수 있는건 Recipe를 추가하는 곳에서 name을 추가할 때 Chunk + 140부터 1036만큼 받을 때 터진다. 나머진 걍 똑같음
'Pwnable > CTF' 카테고리의 다른 글
BCTF 2016 bcloud (0) | 2016.04.05 |
---|---|
Holyshield 2016 Exploit300 VOD exp only (0) | 2016.01.17 |
32c3 CTF 2015 teufel (3) | 2015.12.31 |
32c3 CTF readme (0) | 2015.12.30 |
SECCON 2015 Quals FSB:TreeWalker (0) | 2015.12.09 |
댓글