본문 바로가기

Wargame/Lord Of Buffer overflow

[LOB] 7번 darkelf -> orge













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를 통해 패스워드를 알아낼 수 있다.







'Wargame > Lord Of Buffer overflow' 카테고리의 다른 글

[LOB] 9번 troll -> vampire  (0) 2017.11.16
[LOB] 8번 orge -> troll  (0) 2017.11.16
[LOB] 6번 wolfman -> darkelf  (0) 2017.11.07
[LOB] 5번 orc -> wolfman  (0) 2017.11.07
[LOB] 4번 goblin -> orc  (0) 2017.11.07