ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Windows Buffer OverFlow
    Hack/Pwnable 2015. 8. 12. 03:36


    #include <stdio.h>

    #include <string.h>

    void true1() {

    printf("True");

    }

    void false1() {

    printf("false1");

    }

    int main() {

    char pw[10];

    printf("Input Password: ");

    gets(pw);

    if(strcmp(pw,"buf") == 0)

    {

    true1();

    }

    else {

    false1();

    }

    return 0;

    }


    매우 기초적인 소스이다.

    올리디버거를 켜보자


    0


    A를 20개를 넣으면 EIP가 정상적으로 변조된다.


    우리는 올바른 패스워드를 입력하지않고 RET를덮어 TRUE를 출력할것이다.



    0


    우선 TRUE함수의 주소는 401000이다.

    우리는 00401000으로 덮어주면되는데, 아스키 코드표를 참조하되 HEX를 보아야한다. 또, 리틀엔디언으로 집어넣어주어야한다.

    00401000이아닌 00104000을 넣어야하는데, 아스키코드표를 참고해서 16바이트를 채운후 나머지 4바이트를 조작해보자.



    0


    정상적으로 ret가 덮여 TRUE가 호출되게된다.

    'Hack > Pwnable' 카테고리의 다른 글

    gdb 1줄로 사용하기  (0) 2015.09.02
    Parallels LPE Vulnarability  (0) 2015.08.30
    Windows BOF 관련문서  (0) 2015.08.06
    DBI - Pin tool  (0) 2015.08.04
    PinTool 설치  (0) 2015.07.24

    댓글

Designed by Tistory.