Level17로 접속하여 hint를 확인해 줍니다.


Level16의 코드와 비슷한데 shell 함수가 없네요.

그렇다면 쉘을 띄워주는 함수를 어딘가에 넣어주고, call 변수에 쉘을 띄워주는 함수의 주소값을 넣어주면 될 것 같습니다.

코드 구조가 비슷하니 call 변수에 쉘을 띄워주는 함수의 주소값을 넣어주는 것은 Level16과 동일한 방법을 사용하면 될 듯 하구요.

쉘을 띄워주는 함수는 Level11에서 환경변수에 Shell 코드를 삽입했던 것을 떠올리면 될 듯 합니다.


그럼 우선 환경변수에 shell을 넣도록 하겠습니다.


정상적으로 환경변수에 쉘 코드가 등록이 되었네요.


그럼 환경변수에 등록된 쉘코드의 시작 주소를 가져오도록 하겠습니다.


0xbffffc8a에 등록이 되어 있군요. 이제 call 포인터 변수에 0xbffffc8a를 넣어주면 됩니다.

어렵지 않게 Level18의 쉘이 획득 되었습니다.

 


Level18의 패스워드는 why did you do it 이네요.

+ Recent posts