cgy12306
FTZ 12번 level12 본문
ID : level12
PW : it is like this
11번과 비슷한것 같다. gets 함수 또한 버퍼오
버플로우 취약점이 존재한다. 일단 실행해보자.
attackme를 복사해서 디버깅해보자.
스택구조는 이렇다. 11번과 똑같은 스택구조를 가진다.
우선 환경변수에 쉘 코드를 입력해준다.
쉘 코드가 들어있는 c언어 코드로 위치를 알아낸다.
주소를 알아냈다. 코드를 입력해보자.
python 명령어 부분이 들어가질 않는다. 이유는 11번에서는 argv[1]로 받아오기 때문에 뒤에 입력을 바로 줄 수 있었지만 이번 문제에서는 문구가 출력된 후 입력을 줘야한다. 파이프 문자( | )를 이용해보자.
파이프 문자는 표준출력을 표준입력으로 넘겨준다.
값은 들어갔지만 쉘을 획득하지 못했다. 이 부분은 너무 답답해서 구글을 참고 했다. 해결 방법은 간단했다. 표준출력에서 지원해주는 명령어인 cat을 뒤에다 붙여주는 것이다. 그리고 python 문장을 `으로 묶어주면 ;cat자체를 문자열로 인식하게 때문에 ()로 묶어준다.
비밀번호는 have no clue이다.
참고로 이 문제는 ASLR이 걸려있다고한다.
ASLR은 메모리상의 공격을 어렵게 하기 위해 스텍이나 힙의 공간을 랜덤으로 배치해서 실행할 때 마다 주소가 바뀌는 기법이다.
(이번문제는 RDH님이 많이 도와주셨습니다)
'Wargame > FTZ' 카테고리의 다른 글
FTZ 14번 level14 (0) | 2019.07.06 |
---|---|
FTZ 13번 level13 (0) | 2019.07.06 |
FTZ 11번 level11 (0) | 2019.07.06 |
FTZ 10번 level10 (0) | 2019.07.06 |
FTZ 9번 level9 (0) | 2019.07.06 |
Comments