Wargame/Lord Of Buffer overflow
[LOB] 7번 darkelf -> orge
topaz
2017. 11. 14. 04:09
id : darkelf
password : kernel crashed
로그인 후 orge.c의 코드를 확인해보면 다음과 같다.
이번에는 argv[0]의 길이가 정해졌다.
심볼릭링크를 이용하면 될 것 같다.
orge의 복사본인 oooo를 만들어 두 파일 모두 심볼릭 링크를 만들어준다.
이 전 문제에서 나왔던 주소를 입력해주면 core dump가 뜬다.
core dump 분석을 통해 버퍼의 주소를 알아낼 수 있다.
gdb -q aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa core
를 해주면 0xbfffffdf 에서 알 수 없는 명령어가 나왔다는 것을 알 수 있다.
이 부분의 값을 확인해보면 쉘코드가 있지 않다.
이 주소에서 -1500부터 보다보면 쉘코드가 있는 부분을 알 수 있다.
0xbffffbac
이 부분을 입력해주면 bash가 뜬다.
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
는 oooo의 심볼릭 링크이기 때문에 orge의 심볼릭 링크인
ooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo
를 입력해주면 setuid가 걸려있기 때문에 권한도 생성된다.
쉘이 실행되고 my-pass를 통해 패스워드를 알아낼 수 있다.