2019. 4. 2. 10:50ㆍSystem Hacking/[LOB] Hacker School
안녕하세요!
오늘은 LOB 13번 문제인
darkknight 문제 풀이를 해보도록 하겠습니다!
소스에 RTL1이라고 되어 있네요!
소스 자체도 매우 간단하네요!
버퍼 크기가 40이고
argument 개수가 2개이상이여야 하고!
스택으로 return 하면 안되고!
strcpy에서 취약점 터지고요!
문제를 분석해보니 LOB gate 문제에서
stack return만 막아 놓은 문제 같은데요?
근데 방법은 LOB gate와 똑같이 하면 될 거 같아요!
왜냐면 그때도 return은 library에 있는 system함수로 했거든요!
자 오랜만에 ldd 명령어를 이용해서
bugbear가 어떤 라이브러리 의존성을 가지고 있는지 확인!
역시 /lib/libc.so.6을 사용하네요!
(주소는 0x40018000)
그리고 nm 명령어를 통해
/lib/libc.so.6 파일에서 system 함수의 주소를 알아낼게요!
주소는 /lib/libc.so.6 + 00040ae0!
마지막으로 strings 함수로 /lib/libc.so.6에서
/bin/sh 문자열을 찾아보니!
6개가 뜨는데 저는 맨 마지막꺼 사용할게요!
/lib/libc.so.6 주소 + 000e8778 : /bin/sh 주소
그래서 아래와 같이 다시 한번 보기좋게
정리해봤습니다!
RTL은 제가 FTZ에서도 풀었고 LOB 초반에도 풀었으니
방법 설명은 안해도 되겠죠?
payload는 다음과 같습니다!
a를 44개(더미 값) + system 함수 주소 + aaaa(더미 값) + /bin/sh 주소
그래서 성공적으로 쉘을 따고
비밀번호를 얻었습니다!
고생하셨습니다!
'System Hacking > [LOB] Hacker School' 카테고리의 다른 글
[어설픈] LOB 15번 giant 문제풀이 (0) | 2019.04.06 |
---|---|
[어설픈] LOB 14번 bugbear 문제풀이 (0) | 2019.04.04 |
[어설픈] LOB 12번 golem 문제풀이 (0) | 2019.03.30 |
[어설픈] LOB 10번 vampire 문제풀이 (0) | 2019.03.28 |
[어설픈] LOB 9번 troll 문제풀이 (0) | 2019.03.26 |