본문 바로가기

[Wargame Write-up]/Lord of Buffer Overflow

[LoB RedHat 6.2] LEVEL 4: goblin -> orc

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으로 설정하자.




아래 이미지에서 위의 명령어는 복사본으로 시도한 모습, 그리고 아래는 원본으로 시도한 모습이다.


성공적으로 쉘을 얻었다.