
[pliadCTF 2013] - ropasaurusrex(basic x86)
2021. 4. 3. 21:40
Wargame/etc
1. 문제 NX bit 만이 걸려있음을 알 수 있다. NX bit + ASAL이 걸려있는 상황이다. 파일을 실행해보니 단순히 입력을 받고, "WIN"을 출력한다. 다음은 ida로 까본 모습이다. main이 상당히 심플하다. read 함수로 입력을 받는데, 버퍼 크기보다 더 크게 입력받아 overflow가 발생한다. 우리의 목표는 system 함수로 binsh을 실행시키는 것이다. 그런데, ASLR로 인해 system 함수, binsh의 주소를 모두 모르고 문제에서 주소가 leak 되지도 않는다. 이런 상황에선 어떻게 쉘을 획득할 수 있을까? lazenca rop x86에서 적용했던 기법을 생각할 수 있다. 일단 우리가 이용할 수 있는 것은 read, write 함수이다. -> gadget을 이용해 위 함..