반응형

문제 2 Gremlin



일단 뭐가 있는지 확인해봅니다



cobolt.c 코드를 확인해 봅니다


제가 가진 쉘코드는 25바이트인데 buffer는 16바이트밖에 없으므로


쉘코드를 삽입할 수 없습니다





low

                ————————

buffer          256byte(shellcode)



                —————————

saved ebp

                —————————

saved eip         buffer's start

                —————————

argc

                —————————

*argv            argv's pointer

                —————————

                …


argv[0]         arg1's addr

argv[1]         arg2's addr

argv[2]         0x000000000

argv[3]         0x000000000

                —————————


                …

arg1 addr:      ./cobolt

arg2 addr:      argument (변조된 주소)

arg3 addr:      shellcode

env…

high


그래서 환경변수에 쉘코드를 삽입합니다


nop을 넣는 이유는 주소값을 그 부근에 넣어도 nop은 실행주소가 올떄까지 찾아가므로 주소값 찾기가 용이하기 위해서 입니다



인자로 이제 그 주소값을 넘기면 잘 실행됨을 알수 잇습니다



'Wargame > bof 원정대' 카테고리의 다른 글

[BOF]문제 6 WOLFMAN  (0) 2017.11.21
[BOF]문제 5 ORC  (0) 2017.11.21
[BOF]문제 4 goblin  (0) 2017.11.10
[BOF]문제 3 cobolt  (0) 2017.11.10
[BOF]문제 1 gate  (0) 2017.11.10
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기