CTF/MISC

[angstromCTF] Simon Says - MISC / Python

SecurityMan 2023. 5. 18. 11:00

 

간단한 코딩테스트 느낌의 MISC 문제였다.

 

MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다.

 

반응형

 

문제에서는 nc 로 접속할 수 있는 원격 서버 주소가 제공된다.

 

 

접속해보니

 

wombat 의 앞 세글자와 dragon 의 뒤 세글자를 합한 말이 뭐냐고 한다.

 

뭔소린가 싶어서 일단 avc 라고 아무거나 쳐봤는데

 

바로 에러가 나면서 세션이 종료되었다.

 

 

다시 들어가보니

 

이번엔 bear 의 앞 세글자, dragon 의 뒤 세글자를 합하라고 한다.

 

매번 실행할 때마다 등장하는 동물이 바뀌는가 보다.

 

한번 쳐볼려고 be 까지쳤는데

 

타임아웃이 걸려있는지 세션이 종료되었다.

 

 

이번엔 pwntool 을 이용해서 

 

파이썬으로 코딩을 해서 실행해봤다.

 

코드는 마지막에 첨부한다.

 

출력되는 문자열에서 동물 이름을 추출한 뒤 

 

앞쪽에서 세글자, 뒤쪽에서 세글자를 따와서 보내게 만들었다.

 

그랬더니 girbat 이라고 보냈는데

(아마 기린과 웜뱃이 나왔나보다)

 

다시한번 monkey 와 cat 에 대한걸 보내라는 문구가 출력되었다.

 

여기서 한번 보내고 끝이 아니라는걸 알았다.

 

 

while 문을 이용해서

 

언제까지 보내야하는지 실험해봤다.

 

20번 보냈더니 세션이 종료되었다.

 

from pwn import *

r = remote('challs.actf.co', 31402)
for i in range(20):
	text = str(r.recvline()).split(' ')
	animal1 = text[6]
	animal2 = text[13][:-3]

	answer = animal1[:3] + animal2[-3:]
	print(answer)
	r.sendline(answer.encode())

r.recvline()

 

알아낸 사실을 통해 코드를 수정했다.

 

출력값에서 동물 이름만 추출해서

 

앞뒤로 세글자씩 보내는걸 20번 반복하는 코드이다.

 

 

코드를 실행시키면 플래그가 나온다.

반응형