시스템 해킹

 1576, 1/79 회원가입  로그인  
   chobo1234
   freebsd 8.2 에서 기본적인 버퍼오버플로우 고수님들 도와주세요 ㅠㅠ

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=1526 [복사]


간단한 로컬 오버플로우를 계속 시도해보고 잇는데

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

void shell(void)
{
        system("/bin/sh");
}

int main(int argc, char **argv)
{
        char buf[40] = {0, };
        strcpy(buf, argv[1]);
}

위와같이 간단하게 만들고 -fno-stack-protector랑 -fno-pie랑 스택 바운더리 옵션 모두 빼주고도
저 쉘 함수를 실행시킬수가 없네요 ret이 안덮어지는거같아서 esp를 덮어서 leave; ret을 할때 shell함수로
eip를 옮기려고도 시도를 해봣는데 잘 되지 않네요
freebsd 8.2에서 기본적인 버퍼오버플로우 방지가 되어잇나요 ?? 왜안되는거죠 ㅠㅠ
rtl이던 rop던 리턴어드레스를 덮어야 해볼텐데 잘안되네요;;;;;
고수님들 도와주세요

아 참고로 vuln()함수를 만들어서 거기서 인자를 넘겨서는 리턴을 덮습니다. 왜 메인함수에서 익스플로잇이 안되는지 모르겟네요;

  Hit : 3941     Date : 2011/09/02 11:03