Wargame/Lord Of Buffer overflow

[LOB] 3번 cobolt -> goblin

topaz 2017. 11. 2. 21:05










id : cobolt

passwd : hacking exposed


로그인 후 goblin의 코드를 보면 다음과 같다.







이번에는 gets로 문자열을 입력받는다.


2번처럼 환경변수를 사용하여 문제를 풀면 된다.







shellcode 라는 환경변수를 만들어서 파이프라인을 통해 문제를 해결할 수 있다.


파이프라인의 첫번째 명령의 출력값이 두 번째 명령의 입력으로 사용된다.


따라서 goblin에서 gets로 받아오는 값을 통해 쉘이 실행되어 my-pass를 통해 비밀번호를 알아낼 수 있다.


여기서 cat을 쓰는 이유는 EOF를 인식해 프로그램을 종료시키는 것을 막기 위해서이다.


cat을 쓰지 않고 실행했을 때 프로그램이 혼자 종료된다.


따라서 프로그램의 종료를 지연해주는 역할을 해준다.