학습
워게임
CTF
커뮤니티
랭킹
스토어
커리어
Beta
로그인
|
기업 서비스
Home
학습
워게임
CTF
커뮤니티
랭킹
커리어
Beta
기업 서비스로 이동하기 >
LEVEL 5
cats-and-dogs
pwnable
237
42
2025.06.07. 09:00:00
로그인 하고 문제 풀기
문제 정보
풀이
13
난이도 투표
16
질문
2
최근 풀이자
42
댓글
1
해당 문제는 Dreamhack CTF Season 7 Round #11 (🚩Div1) 에 출제된 문제입니다.
문제 설명
Description
Typical note challenge, but with cats and dogs!
Translate
난이도 투표
16
문제 풀이를 완료한 후에 피드백을 제출할 수 있습니다.
투표 결과
전체 투표 로그
1 / 4
kid007
대표 업적 없음
LEVEL 5에 투표했습니다.
18일 전
5o1z
대표 업적 없음
LEVEL 4에 투표했습니다.
24일 전
HeatMan
대표 업적 없음
LEVEL 5에 투표했습니다.
29일 전
Garden_
시스템 해킹 입문
LEVEL 5에 투표했습니다.
1개월 전
Entr0py
대표 업적 없음
LEVEL 5에 투표했습니다.
1개월 전
질문
2
문제 풀이에 어려움이 있으신가요?
커뮤니티에서 문제에 대한 질문하고 답변 얻기
접근에 대한 힌트 좀 얻을 수 있을까요?
문제를 확인한 결과 double free는 먹히지 않고, heap overflow도 안 되는 거 같고...할당되지 않은 주소를 double free가 가능하다는 걸 확인했지만 구조상 free에 들어갈 거 같지가 않습니다. uaf는 가능하지만 uaf된 청크에 쓰기는 불가능합니다. 접근 방식을 전혀 모르겠어서 질문 남겨봅니다. 약간의 힌트라도 얻을 수 있을까요?
외눈물고기
답변
1
추천
0
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
답변
1
추천
0
2개월 전
«
‹
1
›
»
LEVEL 5
cats-and-dogs
pwnable
237
42
2025.06.07. 09:00:00
로그인 하고 문제 풀기
출제자 정보
Dreamhack
대표 업적 없음
Dreamhack official account
First Blood!
이라누
2024 Invitational Contenders
출제된 지
2시간
만에 풀이 완료!
최근 풀이자
42
nomeaning
대표 업적 없음
11일 전
kid007
대표 업적 없음
18일 전
ZirAjs
대표 업적 없음
18일 전
5o1z
대표 업적 없음
24일 전
V01D
대표 업적 없음
29일 전
HeatMan
대표 업적 없음
29일 전
youner119
카탈로거
1개월 전
keyme
CTF Second Place
1개월 전
Garden_
시스템 해킹 입문
1개월 전
Entr0py
대표 업적 없음
1개월 전
«
‹
1
2
3
4
5
›
»
댓글
1
Rootsquare
바탈리온
2개월 전
Meow~ Woof! Woof!
Translate
«
‹
1
›
»
댓글 1