학습
워게임
CTF
커뮤니티
랭킹
스토어
커리어
Beta
로그인
|
기업 서비스
Home
학습
워게임
CTF
커뮤니티
랭킹
커리어
Beta
기업 서비스로 이동하기 >
LEVEL 2
Overwrite _rtld_global
pwnable
1287
529
2022.02.04. 16:20:11
로그인 하고 문제 풀기
문제 정보
풀이
32
난이도 투표
64
질문
8
최근 풀이자
529
댓글
9
문제 설명
Description
Exploit Tech: _rtld_global에서 실습하는 문제입니다.
Translate
난이도 투표
64
문제 풀이를 완료한 후에 피드백을 제출할 수 있습니다.
투표 결과
전체 투표 로그
1 / 13
djatjfdls
대표 업적 없음
LEVEL 4에 투표했습니다.
1개월 전
q1w2e3r4
대표 업적 없음
LEVEL 4에 투표했습니다.
1개월 전
우빙
강의 수강: 1
LEVEL 2에 투표했습니다.
1개월 전
ZeroVirus
대표 업적 없음
LEVEL 2에 투표했습니다.
1개월 전
상상이
.HACK 2025 참가자
LEVEL 3에 투표했습니다.
1개월 전
질문
8
문제 풀이에 어려움이 있으신가요?
커뮤니티에서 문제에 대한 질문하고 답변 얻기
우분투 로더관련 문제
제 로더에는 왜 _dl_rtld_lock_recursive가 없을까요?...
jihoyun
답변
1
추천
0
2년 전
ow_rtld 이게 왜 세그먼트 펄트 에러가 날까요?
_rtld_global 구역에는 쓰기 권한이 있는걸로 알고 있는데 왜 에러가 발생하는지 모르겠습니다.
jihoyun
답변
1
추천
0
2년 전
제공된 Dockerfile 에선 성공
문제에서 제공된 도커파일로 빌드된 환경에서까지는 쉘을 따는데 성공했지만 리모트에서는 계속 실패합니다. 문제서버에서도 같은 도커파일을 사용하여 환경구축을 하는걸로 알고있는데 리모트에서만 영향을 줄 다른 요소들이 있을까요?
iank
답변
2
추천
0
3년 전
_dl_rtld_lock_recursive 함수 포인터 관련
안녕하세요. 해당 문제에서 _dl_rtld_lock_recursive 함수 포인터가 가리키는 주소를 아래의 코드를 통해서 overwrite 하는 것이 가능합니다. printf("addr: "); scanf("%ld", &addr); printf("value: "); scanf("%ld", &value); *(long *)addr = value; 그래서 결론적으로 _dl_rtld_lock_recursive 함수가 가리키는 주소에 libc.symbols['system'] 값을 넣게 되는데요. 그렇다면 원래 _dl_rtld_lock_recursive -> _dl_rtld_default_lock -> system 함수의 주소 로 저장되는 것이 맞을텐데, 만약 이렇다면 _dl_rtld_lock_recursive 함수 포인터를 실행하면 system 함수가 실행되는 것이 아니라, system 함수가 존재하는 주소를 instruction으로 실행하기 때문에 실제로 system 함수가 실행되지 않는 것이 아닌가요..? 제가 함수포인터 동작에 대해 잘못 이해하고 있는 부분이 있다면 설명주시면 정말 감사드리겠습니다.
ro
답변
1
추천
0
3개월 전
Dockerfile에서 libc 파일 빼내오는 법을 알고 싶습니다.
일단 문제에서 주어진 libc 파일로 exploit해서 local에서는 성공했습니다. (p = process(["./ow_rtld"], env={'LD_PRELOAD':'./libc-2.27.so_18.04.3'})와 같이 적어서 문제에서 제공한 libc 파일을 적용해서 exploit에 성공했습니다.) 근데 remote에서는 exploit 중간에 EOF로 멈추고 실패하는데, 제 생각에는 local에서는 되고 remote에서는 안되니 libc 버전 차이 때문인 것 같습니다. 문제에서 주어진 Dockerfile로부터 libc 파일을 빼내서 그걸 기반으로 문제를 풀어보려 했는데, Dockerfile에서 libc 파일을 어떻게 빼내야 할지를 모르겠습니다. https://realsung.tistory.com/357 여러 방식으로 검색을 했고 위의 방식도 알게 되었는데, dockerfile을 기반으로 build하고 run해서 따라해도 뭘 하든 권한이 없다고 뜨네요.. (sudo도 사용할 수 없고, sudo를 설치하려 해도 권한이 없다고 뜹니다.) 어떻게 libc 파일을 빼내면 될지 알고 싶습니다,, ㅠㅠ
cw00h
답변
1
추천
0
3년 전
리모트 로컬 차이
ow_rtld 드림핵 문제 리모트에서 while 문이 안도는거 같아요 한번 돌고 나면 끝나 버리네요 로컬에선 되는데.....
jihoyun
답변
1
추천
0
2년 전
환경이 달라진게 있나요?
주어진 dockerfile에서 ldd를 이용해 ow_rtld에 라이브러리가 어떻게 링크되어있는지 확인하고 문제를 풀었는데 libc base가 구해지질 않습니다. 접근 방법이 잘못된 거라면 알려주시면 감사하겠습니다.
탈퇴한 이용자
답변
1
추천
0
3년 전
patchelf
안녕하세요. 이번에 Overwrite _rtld_global문제를 풀기위해 patchelf라는 것을 처음 사용하게 되었는데요 patchelf 0.10버전은 어떻게 다운받을 수 있나요? sudo apt install patchelf로 하면 계속 0.9버전이 다운 받아집니다ㅠ
d3lphia
답변
3
추천
0
3년 전
«
‹
1
›
»
LEVEL 2
Overwrite _rtld_global
pwnable
1287
529
2022.02.04. 16:20:11
로그인 하고 문제 풀기
출제자 정보
Dreamhack
대표 업적 없음
Dreamhack official account
First Blood!
Pwn9uin
워게임: 50
출제된 지
4시간
만에 풀이 완료!
최근 풀이자
529
beener
대표 업적 없음
10일 전
hyunz
대표 업적 없음
11일 전
ho_o
시스템 해킹 중급자
26일 전
Jayjayjay
대표 업적 없음
30일 전
ngloc2411
대표 업적 없음
1개월 전
I_mho
세계수
1개월 전
djatjfdls
대표 업적 없음
1개월 전
티엠다스
워게임: 1
1개월 전
q1w2e3r4
대표 업적 없음
1개월 전
qwrtyplkjhgfdszxcvbnm
대표 업적 없음
1개월 전
«
‹
1
2
3
4
5
›
»
댓글
9
우빙
강의 수강: 1
1개월 전
도커에서 사용하는 libc, ld와 드림핵 서버에서 사용하는 libc, ld가 다른지 엄한곳에서 삽질..
Translate
나는재영
대표 업적 없음
2년 전
생각,,보다 많이 복잡하네요,,,,
Translate
KnightChaser
공부벌레
2년 전
생각보다...는 까다로운 것 같아요
Translate
착한 범고래
Cloud 9
2년 전
libc version,,,
Translate
user99
워게임: 20
3년 전
libc 차이 힘들다...
Translate
Rasser
워게임: 20
3년 전
이해하기 쉬웠네요
Translate
Fnhid
강의 수강: 10
3년 전
GG
Translate
juntheworld
명탐정
3년 전
ld와 libc
Translate
Kon
워게임: 1
3년 전
Yammy
Translate
«
‹
1
›
»
댓글 9