🗂️ INDEX

글 작성자: Universe7202

MISC >> easy_taebo

‘left_jab’ : ‘@==(^0^)@’
‘left_mid_jab’ : ‘@=(^0^)@’
‘mid_jab’ : ‘@(^0^)@’
‘right_mid_jab’ : ‘@(^0^)=@’
‘right_jab’ : ‘@(^0^)==@’
‘left_hook’ : ‘@(^0^)@==’
‘right_hook’ : ‘==@(^0^)@’
‘left_speedball’ : ‘@@@(^0^)’
‘right_speedball’ : ‘(^0^)@@@’
‘left_kick’ : ‘@||(^0^)==@’
‘mid_kick’ : ‘@==(^||^)==@’
‘right_kick’ : ‘@==(^0^)||@’

 

 

 

 

 

 

 

 

 

 

문제는 다음과 같고, 문제와 함께 제공되는 것은 사진 오른쪽 문자열이다.

nc로 접속을 해보면 아래 처럼 나온다.

 

100개의 Taebo 문제를 맞추어야 하는데 손으로 하기에는 가능하나, 시간이 많이 걸린다.
솔직히 개인적으로 이런 문제를 한번 풀어 보고 싶었다.
어떻게 하는지 몰랐기 때문에 한번 python으로 해결 해보기로 했다.

이 문제를 풀기 위해 첫번째로 시도한 방법은 socket 모듈을 사용한 방법이다.
socket 모듈을 사용하여 nc로 접속해서 시도하니, 문제가 생겨 다른 방법을 찾아 보았다.

 

pwntools 모듈을 사용하여 이번 문제를 풀었다.

 

이 모듈은 CTF 문제나 등등을 해결할때 아주 큰 도움을 주는 모듈로 사용되고 있다.
자세한 내용을 알고 싶다면 위 사진을 클릭하면 된다.

  • Download

>> apt-get install python2.7 python2.7-dev python-pip
>> pip install pwntools
>> apt-get install libcapstone-dev

  • Documentation

Click Me

 

  • Write up

아래와 같이 python으로 스크립트를 작성한 뒤 실행한다.

 

from pwn import *

dic = {'left_jab' : '@==(^0^)@',
'left_mid_jab' : '@=(^0^)@',
'mid_jab' : '@(^0^)@',
'right_mid_jab' : '@(^0^)=@',
'right_jab' : '@(^0^)==@',
'left_hook' : '@(^0^)@==',
'right_hook' : '==@(^0^)@',
'left_speedball' : '@@@(^0^)',
'right_speedball' : '(^0^)@@@',
'left_kick' : '@||(^0^)==@',
'mid_kick' : '@==(^||^)==@',
'right_kick' : '@==(^0^)||@'}
getKey = dic.keys()

nc = remote("server.trustctf.com",44923)

for i in range(1,101):
	string = "Taebo "+str(i)	# Find keywords
	nc.recvuntil(string)
	result = nc.recvline()	# result => Get problem

	# Filturing
	resultSplit = result[result.find(":")+1:].replace(">>","").replace(" ","").replace("\n","").split("+")
	print(resultSplit)

	# Matcing string
	for count in range(len(resultSplit)):
		for key in getKey:
			if key == resultSplit[count]:
				resultSplit[count] = dic[key]

	send_data = " ".join(resultSplit)
	nc.sendline(send_data)	# sendline => Send a sentence.
	print(send_data)

# Get flag
nc.recvuntil('TRUST')
flag = nc.recvline()
print(flag)

 

'🚩CTF' 카테고리의 다른 글

[HackingCamp 2019] – genius_brain write up  (0) 2019.04.06
[TRUST] – mess write up  (0) 2019.04.06
[LOS] – assassin 풀이  (0) 2019.04.06
[LOS] – giant 풀이  (0) 2019.04.06
[LOS] – bugbear 힌트 및 풀이  (0) 2019.04.06