LEVEL 5

cats-and-dogs

pwnable
  • 문제 정보
  • 풀이 8
  • 난이도 투표 11
  • 질문 2
  • 최근 풀이자 24
  • 댓글
해당 문제는 Dreamhack CTF Season 7 Round #11 (🚩Div1) 에 출제된 문제입니다.

문제 설명

Description

Typical note challenge, but with cats and dogs!

난이도 투표 11

질문 2

문제 풀이에 어려움이 있으신가요?
커뮤니티에서 문제에 대한 질문하고 답변 얻기
막힌 부분에 대한 질문 드립니다!
.............................................................................................................................................................................................................................................................미리보기 스포 방지..................................................................................................................................................... . . . . . . . . . . . . . . . release 부분에서 occupied에 대한 검사가 따로 없어서 UAF와 엮어서 double free가 가능하다는 것 까지는 파악하였고, safe link 가 돼있다는 것 까지는 알아냈습니다. payload 구성을 cat의 포인터 배열을 통해 free의 got 를 system으로 덮어 system(/bin/sh)를 실행하는것이 답이라 생각하고 디버깅 중입니다. 다만 double free 이후에 이후에 할당된 청크를 조작하기 위해 처음 free 이후 see를 통해 xor 할 alue 를 알아넀다고 생각하고 1 0 (cat[0]에 처음 할당) 4 0 (cat[0] free) 2 0 (save link 의 xor 값 읽어서 변수 xorV로 저장) 1 1 (cat[1] 에 cat[0] 로 할당되었던 청크 할당) 4 0 (cat[1] 과 같은 청크이므로 free 가능) 3 1 'a'* 9 (cat[1] 을 통해 fd bk 값 오염) 4 0 (cat[1] 의 청크 double free) 1 2 (cat[2] 에 double free 된 청크 1번 할당) 3 2 p64(cats주소 혹은 GOT 값과 xorV가 xor 된 값)(safe link의 양식에 맞는 할당을 원하는 주소) 1 3 (cat[3] 에 double free 된 청크 2번째 할당. 이후 청크는 제가 조작한 cats 로 들어갈 것으로 생각) 1 4 마지막 1 4 과정에서 제가 원한 주소가 할당이 되어 cat[4] 가 제가 임의로 쓰고 읽을 수 있는 주소가 될 것이라고 기대했습니다. 하지만 새롭게 heap chunk 가 할당되었습니다. 제가 어디서 잘못 접근한 것인지 혹은 해결 방법에 대한 힌트를 조금 알려주실 수 있으실까요??
q1w2e3r4
LEVEL 5

cats-and-dogs

pwnable

출제자 정보

avatar
Dreamhack
대표 업적 없음

First Blood!

avatar
이라누
2024 Invitational Contenders
출제된 지 2시간 만에 풀이 완료!

최근 풀이자 24

Unbbal
시스템 해킹 입문
YEONBA
.HACK 2025 참가자
q1w2e3r4
대표 업적 없음
avatar
grail
추적자
avatar
kuvee
대표 업적 없음
avatar
TheFlash2k
대표 업적 없음
avatar
5unsetpowerln
대표 업적 없음
wh1te4ever
대표 업적 없음
avatar
daeseong
비기너즈 입문
kileak
대표 업적 없음

댓글

아직 문제에 대한 댓글이 없습니다.