Wargame/HackCTF
[HackCTF] 1996
h4won
2021. 4. 18. 20:27
1. 문제
NX bit 가 걸려있다.
1. "어떤 환경 변수를 읽고 싶니?" 멘트를 출력한다.
2. name 버퍼에 입력을 받는다.
3. getev() 함수를 통해 입력받은 환경변수의 값을 읽어온다.
처음에는 환경 변수 문제인 줄 알고, 엄청 고민했었는데 아니었다!!
최종 목표는 spawn_shell 함수를 실행하는 것일 것이다.
그리고 앞에서 name 에 std cin 으로 입력을 받을 때 크기를 지정하지 않기에 bof 를 일으킬 수 있다.
따라서 ret 값을 spawn_shell() 시작 주소로 변경해주면 될 것 같다.
(spawn_shell 은 코드 영역에 존재하므로 ASLR의 영향을 받지 않음 -> 고정된 주소)
2. 익스플로잇