Notice
Recent Posts
Recent Comments
- Today
- Total
Phantom
[Darkknight] darkknight -> bugbear 풀이 본문
반응형
|
이번 단계는 RTL 문제입니다
RTL이란 Return-To-Libc의 약자로 NX와 같은 것을 우회하기 위해 나온 기법입니다
스택기반의 BOF는 Retn주소를 덮어 씌워 쉘코드로 가게하는데에 반해
RTL의 경우 Retn 주소를 libc 공유 라이브러리의 함수로 덮어쓰기 때문에 쉘코드가 필요 없습니다
쉘 획득 과정 페이로드
먼저 system("/bin/sh")를 실행하기 위해
system함수와 system함수의 리턴주소인 exit함수, 그리고 /bin/sh가 담겨있는 주소를 찾을겁니다
스택에는
buffer ret system's ret arg
NOP + SFP |
system |
exit |
/bin/sh |
이렇게 스택에 넣을 것입니다
먼저 system 함수와 exit의 주소를 알아냅니다
그리고 /bin/sh의 주소를 알아냅니다
1 2 3 4 5 6 7 8 | #include <stdio.h> int main(){ long shell = 0x40058ae0; while(memcmp((void *)shell, "/bin/sh", 8)) shell++; printf("\"/bin/sh\" is at [ %#x ] \n",shell); } |
system = 0x40058ae0
exit = 0x400391e0
/bin/sh = 0x400fbfff9
명령문 작성하기
|
이로써 bugbear의 권한을 얻었습니다
반응형
'Pwnable > [Wargame]Load of Bof' 카테고리의 다른 글
[Giant] giant -> assassin 풀이 (0) | 2015.01.08 |
---|---|
[Bugbear] bugbear -> giant 풀이 (0) | 2015.01.07 |
[Golem] golem -> darkknight 풀이 (0) | 2015.01.05 |
[Skelton] skeleton -> golem 풀이 (0) | 2014.08.20 |
[Vampire] vampire -> skeleton 풀이 (0) | 2014.08.07 |
Comments