ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Stack0 풀이
    System hacking training/Protostar 2018. 2. 3. 20:24

    [문제]



    [풀이]


    main()안의 변수를 보면 int형 변수 modified와 char 64크기의 배열 buffer가 존재한다.


    modified의 값을 바꿀 수 있는가를 시험하는 문제인것같다.


    여기서 bof 취약점을 발견할 수 있었는데 gets()는 경계를 검사하지 않는 함수가 쓰였기 때문에 bof 공격이 가능하다.


    bof 취약점을 이용하여 modified의 값을 바꿔주면 된다.



    [Stack]


    [low address]    | char buffer[64] | int modified | SFP | RET |    [high address]


    buffer와 modified 중간에 더미값이 없는 쉬운 문제다.(5c(hex) - lc(hex) == 64(dec))


    esp+5c 에 0을 넣는것으로 modified의 위치를 알 수 있었고, eax 에 esp+1c 주소를 넣고 call gets()를 보면 buffer의 시작 위치를 알 수 있다.


    따라서 A를 64개보다 더 많이 넣어주면 된다.

    반응형

    'System hacking training > Protostar' 카테고리의 다른 글

    Stack6 풀이  (0) 2018.02.16
    Stack4 풀이  (3) 2018.02.04
    Stack3 풀이  (0) 2018.02.04
    Stack2 풀이  (0) 2018.02.04
    Stack1 풀이  (0) 2018.02.03
Designed by Tistory.