ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [LOB] gate
    hacking 2021. 8. 18. 23:03

    gremlin.c

    strcpy에서 bof 취약점 발생

     

    공격 계획

    buffer[256] + main's ebp[4] + main's ret(change to system addr) + system's ret[4] + shell(/bin/sh)

     

    library에 있는 system 함수의 주소와

    /bin/sh의 주소가 필요하다

     

    한 가지 설명하자면

    func(int arg)

    다음과 같이 인자가 있는 함수에서는 스택이

    a[4] + ebp + ret + arg 로 쌓인다

     

    이를 system 함수에 적용시키면

    ret + 'system 함수의 인자값' 으로 된다

    /bin/sh 앞에 넣을 4byte는 system 함수의 ret를 덮기 위함이다

     

    고로 공격 계획을 다시 생각해보면

    ret를 system함수로 돌리고 system 함수의 인자값을 /bin/sh로 해주면 쉘 획득이 가능한 것이다

     

    gdb를 사용하여 system 함수의 주소를 알아낸 뒤

     

    binsh.c

    다음과 같이 /bin/sh를 구하면 된다

     

    ./gremlin ``python -c 'print "A" * (256+4) + "\xe0\x8a\x05\x40" + "A" * 4 + "\xf9\xbf\x0f\x40"'``

     

     

    gremlin / hello bof world

     

     

     

     

     

    한가지 궁금한점..

    buffer에 /bin/sh를 입력하고

    해당 문자열이 있는 주소를 system함수의 인자값으로 주면.. 안되나..?

    해보긴 했는데 잘 안되는걸 보니 안되는거 같기도 하고 궁금하다..

    원래는 이렇게 하려 했으나 잘 안 돼서 위와 같이 했다

    'hacking' 카테고리의 다른 글

    [sstf2021] sqli102  (0) 2021.08.23
    [sstf2021] sqli101  (0) 2021.08.22
    [sstf2021] bof102  (0) 2021.08.21
    [sstf2021] bof101  (0) 2021.08.20
    [LOB] gremlin  (0) 2021.08.19

    댓글

Designed by Tistory.