CTF/암호학

[2021CCE] rox - 암호학 / XOR

SecurityMan 2023. 8. 17. 11:00

 

2021CCE에 출제된 암호학 문제

 

이번 문제에서도 역시 기초에 대해 언급한다.

 

이렇게 기초를 좋아했던 CCE인데

 

2022년 부턴 대회 난이도가 엄청나게 올라가서 좀 아이러니하다.

 

반응형

 

문제 제목부터 딱 봐도 XOR과 관련된 문제이다.

 

같이 제공된 압축파일의 압축을 풀면

 

Bg0PXUlMTx46AgYKIRcWMR4HHCENDAMaAxwNCjoBBAomPRELCRgODQ1fGA==

 

이런 암호문이 주어진다.

 

key="???????"

flag="cce2021{??????????????????????????????????}"

def encrypt(plain):
	res=""
	for _ in range(len(plain)):
		res+=chr(ord(key[_%7])^ord(plain[_]))
	return res

open("enc","wb").write(encrypt(flag).encode("base64"))

 

파이썬 코드도 하나 같이 주어지는데

 

암호문을 만들때 사용된 파이썬 코드인듯 하다.

 

KEY 값은 7글자이고

 

해당 KEY값과 평문을 XOR 한 뒤 Base64 인코딩해서 암호문을 만든다.

 

KEY 도 7자리고

 

평문에서 공개된 부분인 플래그 포맷 cce2021 도 7자리이기 때문에

 

시간 얼마 안걸릴거 같아 그냥 하나씩 수작업 해보기로 했다.

 

 

CyberChef(https://gchq.github.io/CyberChef) 에서

 

Base64 디코딩을 해주고

 

UTF8 값으로 XOR을 해준다.

 

KEY 값을 en 이라고 입력했을때

 

Output 앞부분에 플래그 포맷인 cc 가 나오는게 보인다.

 

이런식으로 한글자씩 찾아냈다.

 

 

KEY 값은 enjoy~~ 였고

 

해당 키를 넣으면 플래그를 확인할 수 있다.

반응형