ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Fake EBP
    카테고리 없음 2015. 6. 24. 20:32

    Fake EBP는 말그대로 EBP를 속이는 기법이다.


    해당기법은 RET까지 덮을수있다.


    leave - mov esp,ebp, pop ebp 명령을 가지고있다.


    esp에 ebp가 들어가고, ebp가 pop이된다.


    처음에 ret명령이 실행될떄 pop eip 실행되고, leave,ret주소를 넣었기때문에 다시 되돌아간다.


    mov esp,ebp , pop ebp가 실행될떄 전 leave명령이 실행되면서 ebp에는 buf+4값이 esp로 이동된다.


    그리고 다시 pop ebp명령을통해 리턴되고, eip에는 buf+4주소들어가 buf+4를 가리켜 명령을실행하게된다.


    buf+4를 넣는것은, pop명령이 4바이트를 증가시키기 때문이다.


    예제 소스를보자.


    #include <stdio.h>

    #include <string.h>


    int main(int argc, char *argv[])

    {

    char buffer[40];

    strncpy(buffer,argv[1],56);

    return 0;

    }


    정확히 ret까지만 덮히게 56바이트를 입력받을수있다.


    공격방법은 아래와같다.


    dummy[4] + "system" + exit or dummy[4] + "A"*4 + /bin/sh + dummy[28] + buf+4 + leave


    이런식으로 공격을 수행해준다.

    댓글

Designed by Tistory.