login은 goblin이고 password는 저번 문제에서 찾아낸 hackers proof였다!
우선 앞 문제들과 마찬가지로 bash2를 이용해서 오류를 잡아주었고, ls -l 을 이용해서 orc, orc.c 파일들이 있는 것을 확인할 수 있었다.
cat 명령어를 통해서 orc.c를 확인 해볼 수 있었다.
//egghunter 아래 for문을 통해서 환경변수 부분을 0으로 설정한 것을 볼 수 있었다. 따라서 환경변수를 사용하여 문제를 해결할 수 없다는 것을 알 수 있었다.
if(argv[1][47] != '\xbf')
{
printf("stack is still your friend.\n");
exit(0);
}
리턴주소의 첫 바이트는 \xbf이어야 하는 것도 알 수 있었다. 그래서 스택영역을 사용하여 쉘코드를 buffer에 넣는 방식을 취할 것이다.
tmp 디렉터리를 만든 다음 cp 명령어를 이용하여 orc 파일을 tmp 디렉터리로 복사했다. 그 다음 cd 명령어를 이용하여 tmp 디렉터리로 이동하였다.
core 파일을 gdb 명령어를 통해 분석하였다.
return address를 0xbfffc40으로 두고 문제를 풀겠다.
위의 리턴주소를 잡고 문제를 풀어 my-pass를 통해 password가 cantata라는 것을 알 수 있었다.
cantata
'LOB' 카테고리의 다른 글
LOB level 6 (0) | 2020.08.19 |
---|---|
LOB level 5 (0) | 2020.08.19 |
LOB level3 (0) | 2020.08.18 |
LOB level2 (0) | 2020.08.14 |
LOB level1 (0) | 2020.08.14 |