System hacking training/Hackerschool LOB

LEVEL 04 goblin write-up

fkillrra 2018. 3. 16. 01:32

[문제]



extern 키워드로 외부변수를 불러와 0으로 초기화 해주는 것을 볼 수 있다.

environ이라는 변수명만 봐도 환경변수를 초기화 해준다는 것을 알 수 있다.


따라서 exploit하기 위해서 자주쓰던 환경변수를 사용할 수 없다.


그렇기 때문에 스택에 쉘코드를 올려 실행을 해야한다.

[시나리오]


| char buffer[40] | SFP | RET |


스택은 위와 같이 쉘코드가 들어갈 충분한 크기를 가지고 있다.

따라서 buffer에 19byte의 dummy(\x90)과 쉘코드 25byte를 넣어준다.


gdb로 입력값이 들어가는 위치중 \x90에 해당하는 위치의 주소를 구하여 return address에 덮어주면 쉘을 띄울 수 있다.



※ gdb로 분석을 하기 위해 tmp 디렉토리를 만들어줬고, 그 안에 orc 바이너리를 복사하여 분석하였다.


이상 goblin 풀이를 마친다.

반응형