ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • add write up
    System hacking training/pwnable.xyz 2020. 1. 1. 13:30

    add

    멍청하게 got overwrite하려고 삽질(?)해서 시간 좀 날린 문제다.

    prob
    file, checksec

    NX, Canary가 걸려있어 일반적인 쉘코드를 이용한 공격에 대한 대비가 되어있고,

    Partial RELRO가 걸려있어 got에 대한 쓰기 권한이 있어 overwrite가 가능하다.

    IDA-View main()

    해당 바이너리는 문제 이름 그대로 add를 해주는 기능만 구현이 되어있다.

    또한 flag를 출력해주는 win()함수가 구현되어있다.

    IDA-View win()

    취약점은 main()함수에서 입력받은 두 수를 더하고, 해당 값을 저장하는 과정에서 발생하는데,

    v6을 통해 v7에서 ret에 도달할 수 있고, v4와 v5를 더한 값으로 해당 위치에 원하는 값을 저장할 수 있다.

     

    v7은 bp-0x60(Dec : 96)에 위치하며 ret에 도달하기 위해서는 v6을 13으로 세팅하면 된다.

    v7은 __int64 즉, 8byte씩 저장공간을 마련하기 때문에 bp+8인 ret에 도달하기 위해서는 v6에 13을 입력하면 된다.

    v7[0] : rbp-0x60
    v7[1] : rbp-0x58
    v7[2] : rbp-0x50
    .
    .
    .
    v7[12] : rbp+0x0
              v7[13] : rbp+0x8 => ret!
    ⚡ root@ubuntu  /mnt/hgfs/vm_shared/pwnable.xyz  nc svc.pwnable.xyz 30002
    Input: 0 4196386 13
    Result: 4196386Input: a
    FLAG{------------------}

    입력 포맷이 %ld(부호있는 10진수 정수)로 받기 때문에 10진수로 변환하여 입력하면 flag를 획득할 수 있다.

    반응형

    'System hacking training > pwnable.xyz' 카테고리의 다른 글

    note write up  (1) 2020.01.10
    GrownUp write up  (0) 2020.01.02
    misalignment write up  (0) 2020.01.01
    sub write up  (0) 2019.12.31
    Welcome write up  (0) 2019.12.22
Designed by Tistory.