https://dreamhack.io/learn/119#7
해당 강의에서 custom 함수를 통해 라이브러리 주소를 유출하고 Robot, Human에서 uaf를 발생시켜 one_gadget을 실행한다는 익스플로잇 설계는 이해했습니다만 custom 함수를 통한 라이브러리 유출에 대한 내용이 너무 빈약한 것 같습니다..
해당 강의에서는 단순히 "libc가 매핑된 주소의 오프셋은 gdb로 쉽게 구할 수 있습니다." 라고만 하고 넘어가네요.. ㅠㅠ
gdb를 통해 libc가 매핑된 주소를 어떻게 구할 수 있는지, fd와 bk에 정확히 어떤 정보가 어떤 형태로 들어가게 되는지, 해당
익스플로잇 코드에서 커스텀 함수를 통한 heap 할당을 왜 4번이나 하는지, -1을 입력하는 것은 그냥 영역을 해제하지 않겠다는
의미가 맞는지 모르겠습니다..ㅠㅠ
문제는 해결했습니다. 하지만 got overwrite을 해줄때 처음에 printf나 read의 got를 overwrite해주려고 해보았는데 안되고 다른 함수의 got를 overwrite해서서 해결하게 되었습니다. 근데 printf,read의 got를 overwrite했을 땐 왜 안되는지 잘 모르겠는데 그 이유에 대해서 고수분들께서 도와주셨으면 합니다. ㅎㅎㅎ
al이랑 ah뜻이 뭐에요?
rax = 0x0123456789abcdef 일 때, al의 값은?
al은 그냥 맨뒤를 의미하는건가요?
rax = 0x0123456789abcdef 일 때, ah의 값은?
ah는 무슨의미에요? 왜 정답이 cd인거구?
rax = 0x0123456789abcdef 일 때, eax의 값은?
eax의 답은 89abcedf 라고 하는데 무슨의미인지 모르겠습니다!
# 연관 태그 없음
The hackers’ Playground 해커들의 놀이터, 드림핵Dreamhack은 해커들의 놀이터입니다. 해킹과 보안을 공부하고 싶은 학생, 보다 안전한 코드를 작성하고 싶은 개발자, 가지고 있는 보안 지식과 실력을 한 단계 업그레이드하고 싶은 보안 전문가까지 함께 공부하고 연습하며 지식을 나누고 실력을 향상할 수 있는 공간입니다.
드림핵은 다양한 서비스를 제공하고 있어요.
기업, 공공기관, 교육기관 등 다양한 기관과 함께하고 있답니다.
기업을 위한 보안 역량 향상 솔루션
Dreamhack Enterprise
기업의 보안은 이제 전문가가 혼자, 혹은 보안팀만이 하는 일이 아닙니다. Dreamhack Enterprise는 기업의 전사적 보안 역량 향상을 위한 솔루션을 강의, 워게임, CTF를 통해 제공합니다.