학습
워게임
CTF
커뮤니티
랭킹
스토어
커리어
Beta
로그인
|
기업 서비스
Home
학습
워게임
CTF
커뮤니티
랭킹
커리어
Beta
기업 서비스로 이동하기 >
LEVEL 2
Return to Library
pwnable
2901
1651
로그인 하고 문제 풀기
문제 정보
풀이
64
난이도 투표
67
질문
21
최근 풀이자
1651
댓글
40
문제 설명
Description
Exploit Tech: Return to Library에서 실습하는 문제입니다.
Translate
출제자 정보
Dreamhack
대표 업적 없음
2021.12.08. 16:20:39
First Blood!
Sechack
2024 Invitational Contenders
출제된 지
4시간
만에 풀이 완료!
난이도 투표
67
문제 풀이를 완료한 후에 피드백을 제출할 수 있습니다.
투표 결과
전체 투표 로그
1 / 14
Ingan
플래툰
LEVEL 2에 투표했습니다.
24일 전
상혁
워게임 고인물
LEVEL 3에 투표했습니다.
30일 전
apman
대표 업적 없음
LEVEL 2에 투표했습니다.
3개월 전
양갱
전자두뇌
LEVEL 1에 투표했습니다.
3개월 전
reaunper
대표 업적 없음
LEVEL 2에 투표했습니다.
4개월 전
질문
18
문제 풀이에 어려움이 있으신가요?
커뮤니티에서 문제에 대한 질문하고 답변 얻기
ret 값으로 들어가는 주소가 의미하는 것이 뭔가요?
ret에 0x400825 주소가 들어가는데 ret주소에 pop rdi를 바로 쓰지 않는 이유는 알겠는데, 저 값이 왜 들어가야 하는건가요? 메모리 덤프찍어보니 __libc_csu_init 관련 주소인것 같은데요
이무쿤
답변
1
추천
4
2년 전
gdb에서 프로그램이 실행되지 않습니다.
캡처 위 사진처럼 처음 카나리 릭을 위해서 buf를 입력받는 시점에 프로그램이 멈춥니다. 그리고 다시 r로 실행하니 셸만 뜨고 아무 명령을 입력하면 gdb까지 종료됩니다. 아무리 검색해봐도 관련된 내용으로 쓰인 글이 보이지가 않습니다 ㅠㅠ
SuperVingo
답변
1
추천
2
2년 전
recv 관련해서 궁금한것이 있습니다.
해당 문제의 소스코드입니다 setvbuf(stdin, 0, _IONBF, 0); setvbuf(stdout, 0, _IONBF, 0); system("echo 'system@plt"); // Leak canary printf("[1] Leak Canary\n"); printf("Buf: "); read(0, buf, 0x100); printf("Buf: %s\n", buf); 이 소스코드를 보면 read하기전에 system함수로 echo로 출력 한번 print로 출력 두번이 있는데 로컬에서 실행할때는 익스플로잇 코드에 print(p.recvline()) print(p.recvline()) print(p.recv(10)) 을 처음에 해주니 b'system@plt\n' b'[1] Leak Canary\n' b'Buf: ' 이렇게 출력이 되는데 서버로 공격을 수행하니 b'[1] Leak Canary' 이것만 출력되고 멈추길래 p.recv(1024)하나만 출력시켜보니 b'[1] Leak Canary\nBuf: ' 이렇게 출력되더라고요 분명 로컬로 실행시킬땐 b'system@plt\n' 이게 출력됐었는데 서버로 수행할때는 왜 b'system@plt\n' 가 출력이 안되는건지 궁금합니다
Dendrog
답변
1
추천
2
2년 전
ret의 주소와 gadget의 개념에 관해 질문 있습니다.
ret 주소와 gadget의 개념에 대해 질문이 있습니다. 리턴 가젯은 ret 명령어로 끝나는 어셈블리 코드 조각을 의미한다고 하였는데, pop rdi; ret의 경우 pop rdi가 실행된 후, ret 가 실행된다는 뜻의 2단계 코드 조각을 말하는 것인가요?? 아니라면 무슨 의미인가요? ROPgadget --binary rtl 명령어의 결과가 아래의 사진과 같은데, 여기서 어떤 가젯을 사용 하는 지는 어떻게 정하나요?? 그냥 아무 가젯이나 사용해도 되나요? 풀이에서 왜 ret를 사용했는지 궁금합니다. image.png 세 번째로는 이 문제에서 의미없는 문자열로 57byte만큼 채운 후, canary를 leak하고, 다시 의미 없는 문자열로 8byte를 덮은 다음, 원래는 main 함수의 ret 하는 코드가 있지만, ROPgadget --binary rtl에서 찾은 코드로 덮어버렸고 그 후 pop rdi로 /bin/sh의 주소를 rdi에 넣고 system 함수를 실행시켜서 shell을 획득하는 것으로 이해를 했는데 image.png 여기서 pop rdi; ret가 아니라 pop rdi, /bin/sh의 주소, system 함수 호출 이렇게 3단계로 진행되어야 하는 거 아닌가요?? 왜 pop rdi가 아니라 pop rdi; ret인지 궁금합니다. pop rdi를 한 후, ret를 해버리면 system 함수를 호출할 수 없는 것 아닌가요??
mia7a
답변
2
추천
2
11개월 전
질문 세 개
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
2년 전
PLT 주소..
system 함수 주소를 puts_plt = e.plt["system"] <- 같이 안 구하고 puts_plt = p64(0x시스템 함수 주소) 이렇게 주소를 직접 넣어 문제를 풀었습니다. plt 주소는 ASLR이 걸려있어도 PIE가 안 걸려있으면 주소가 안 변해서 로컬에서 풀리는 건 이해가 되는데 리모트에서는 왜 풀리는지 이해가 되지 않습니다... 로컬 PLT 주소와 리모트 PLT 주소가 왜 같은가요..?
oog
답변
1
추천
0
1년 전
system 호출시 에러
pwndbg> ni [New process 2031] process 2031 is executing new program: /bin/dash Error in re-setting breakpoint 1: No symbol table is loaded. Use the "file" command. Error in re-setting breakpoint 1: No symbol "main" in current context. Error in re-setting breakpoint 1: No symbol "main" in current context. Error in re-setting breakpoint 1: No symbol "main" in current context. sh: 1: Syntax error: Unterminated quoted string [1] Leak Canary Buf: [Inferior 2 (process 2031) exited with code 02] pwndbg> gdb로 브레이크포인트걸고 실행하다보면 system함수 호출후 이런 에러가 뜨는데 뭔가요
redticket
답변
1
추천
0
2년 전
system함수 주소 관련 질문
ASLR 기능이 켜져 있으니까 libc 내부 system 함수 주소는 계속 바뀌어야되는거 아닌가여? gdb로 b* main 후 실행시키고 print system하면 계속 동일한 주소 나오는데 왜 이러는건가여? 문제의도로는 ASLR기능이 켜져 있으니까 libc 주소 계속 바뀔거고 그러니까 코드 내 system plt값이랑 /bin/sh 이용하도록 유도한거 아닌가여?
mooji
답변
1
추천
0
1년 전
«
‹
1
2
›
»
최근 풀이자
1651
NUN
워게임: 20
2일 전
행복한콩
대표 업적 없음
3일 전
Floating Cloud
대표 업적 없음
3일 전
trainee13
대표 업적 없음
3일 전
gunha5205
대표 업적 없음
3일 전
yeolmu
대표 업적 없음
4일 전
trainee12
대표 업적 없음
4일 전
n0ha
.HACK 2024 참가자
4일 전
G0ld
대표 업적 없음
4일 전
trainee10
대표 업적 없음
5일 전
«
‹
1
2
3
4
5
›
»
댓글
40
daeseong1209
Crazy 8
3개월 전
매우 쉬운!
Translate
머더뻐킨 릴 투더 빅 뽀이 예아 그ㄹㄹㄹㄹ라
대표 업적 없음
3개월 전
어렵지만 꽤 많이 배운듯
Translate
스카이넷
워게임 고인물
6개월 전
ez
Translate
O_F
대표 업적 없음
11개월 전
좋습니다.
Translate
buaii
워게임 고인물
1년 전
GOT...
Translate
P2G
대표 업적 없음
1년 전
good...
Translate
HYN
Perfect 10
1년 전
good
Translate
sinse100
대표 업적 없음
1년 전
remind the alignment
Translate
l000wk3y
공부벌레
1년 전
gg
Translate
hyuunn
강의 수강: 10
1년 전
홀리 풀었다
Translate
«
‹
1
2
3
4
›
»
댓글 40