LEVEL 4: egghunter
egghunter라고 하여, 환경변수를 이용한 공격이 막혔다.
또한 argv[1]의 마지막 글자는 \xbf이어야 한다.
buffer size가 늘어나기도 했지만, 우리에겐 argv[2]가 있다.
main 함수가 꽤 길어졌다. 이번에도 strcpy 호출 직후인 0x80485c2에 breakpoint를 걸고 payload를 작성해보자.
buffer, sfp 총 44바이트를 A로 덮고, ret는 \xbf 4개로 덮는 argv[1]와
B 48개로 이루어진 argv[2]를 인자로 세팅하고 실행한다.
스택을 보면, 아래쪽에 입력한 payload가 위치한다. argv[2]에서 NOP sled를 태울 것이니,
적당히 ret 주소를 0xbffffc30으로 설정하자.
아래 이미지에서 위의 명령어는 복사본으로 시도한 모습, 그리고 아래는 원본으로 시도한 모습이다.
성공적으로 쉘을 얻었다.
'[Wargame Write-up] > Lord of Buffer Overflow' 카테고리의 다른 글
[LoB RedHat 6.2] LEVEL 6: wolfman -> darkelf (0) | 2016.10.04 |
---|---|
[LoB RedHat 6.2] LEVEL 5: orc -> wolfman (0) | 2016.10.03 |
[LoB RedHat 6.2] LEVEL 3: cobolt -> goblin (0) | 2016.10.02 |
[LoB RedHat 6.2] LEVEL 2: gremlin -> cobolt (0) | 2016.09.28 |
[LoB RedHat 6.2] LEVEL 1: gate -> gremlin (0) | 2016.09.28 |