-
Level4 (goblin -> orc)$ 시스템 해킹 $/Los Of BufferOverflow 2020. 1. 1. 14:16
소스코드를 확인해 보겠습니다.
egghunter이란 환경변수 부분을 0으로 초기화 하는 역할을 하는데, 그래서 이전에 사용한 환경변수 관련된 문제 풀이는 사용할 수 없습니다.
그리고 argv의 47번째 바이트가 \xbf 인지 확인 합니다.
buffer의 크기 40바이트 + SFP 4바이트 + RET 4바이트 = 48바이트
하지만 argv[1]의 47번째 바이트가 \xbf 인것으로 보아 RET 첫번째 주소의 시작값이 \xbf 라는 것을 알수 있습니다.
또한 gdb로 열어보면 코드 영역은 0x80~~의 주소를 가지고있고
우리가 필요한 \xbf 는 Stack 영역에 있는 주소입니다.
이제 한번 core dump를 해보겠습니다.
RET에 들어가야하는 주소를 찾기 위해서 gdb -q -c core 명령을 통해 알아보겠습니다.
RET에 와야 하는 주소는 0xbffffc63입니다.
페이로드를 한번 작성해 보겠습니다.
login : orc
Password : cantata
'$ 시스템 해킹 $ > Los Of BufferOverflow' 카테고리의 다른 글
Level6 (wolfman -> darkelf) (0) 2020.01.01 Level5 (orc -> wolfman) (0) 2020.01.01 Level3 (cobolt -> goblin) (0) 2020.01.01 Level2 (gremlin -> cobolt) (0) 2020.01.01 Level1 (gate -> gremlin) (0) 2020.01.01