CTFlearn의 일흔 아홉번째 문제
암호학 카테고리의 Hard 난이도 문제인데
풀어보니 Hard는 아닌것 같다.
반응형
문제의 목표는 주어진 암호문인
\t\x1b\x11\x00\x16\x0b\x1d\x19\x17\x0b\x05\x1d(\x05\x005\x1b\x1f\t,\r\x00\x18\x1c\x0e
를 해독하는 것이다.
문제 제목에서 XOR 을 언급했으니
당연히 XOR 을 사용해야 할 듯 하다.
플래그가 ctflearn{ 으로 시작한다는 아주 중요한 힌트도 주어진다.
CyberChef(https://gchq.github.io/CyberChe) 에서 우선 주어진 암호문을 From Hex 로 바꿔보았다.
Output 을 보면
뭔가 결과가 제대로 나오지 않는 느낌인데
이건 중간중간에 인코딩된 문자열이 포함되어있어서 그렇다.
\t, \r, (, 5 같은 문자열이 중간에 있는것이 보일것이다.
이런 값들을 모두 \x00 과 같은 형태로 바꿔줘야 한다.
바꾸는 방법은 ASCII 코드표를 보고,
\t, \r, ( 등을 16진수로 어떻게 표현하는지 확인한 뒤에
\x00 포멧으로 바꿔주면 된다.
이렇게 바꾸면 Output 이 아까랑 다르게 나오는걸 볼 수 있다.
key 값을 알아내는 것은 아주 쉽다.
평문 XOR 키 = 암호문 이었으니
암호문 XOR 평문(일부) 를 하면 KEY 값을 어느정도 추측이 가능할 것이다.
문제 설명에서 언급한 ctflearn{ 을 key 값으로 넣고 XOR을 해보면
jowlsjowlhq 와 같은 결과가 나오는데
이중 반복되는 부분인 앞쪽 부분을 key 값으로 넣어주면
플래그를 찾을 수 있다.
반응형
'워게임 > CTFlearn' 카테고리의 다른 글
[CTFlearn] CoppeRSA Lattice - 암호학 / RsaCtfTool (64) | 2023.03.28 |
---|---|
[CTFlearn] Adoni Assembler Chall - 프로그래밍 (62) | 2023.03.26 |
[CTFlearn] Dumpster - 포렌식 / Eclipse Memory Analyzer (70) | 2023.03.08 |
[CTFlearn] My Friend John - MISC / John the Ripper (74) | 2023.03.06 |
[CTFlearn] RE_verseDIS - 리버싱 / IDA / Python (52) | 2023.03.03 |