반응형

crypto 75

[CTFlearn] RSA Twins! - 암호학 / RsaCtfTool

CTFlearn의 예순 일곱번째 문제 이번엔 암호학 카테고리의 RSA 문제이다. Hard 로 분류되어 있어서 살짝 쫄았는데 그렇게 어렵지 않게 풀 수 있다. 문제 제목에 나온것 처럼 RSA 암호 알고리즘과 관련되어있다. RSA는 지금까지도 아주 많이 사용하는 공개키 알고리즘의 이름이다. 개발자인 Rivest, Shamir, Adleman 세명의 이름 앞글자를 따서 RSA 라고 이름을 붙혔다. 엄청나게 큰 숫자일수록 소인수분해가 어렵다는것에 착안해서 설계되었다. RSA의 원리는 아래와 같다. 1. 두 소수 p, q를 준비한다. 2. p-1, q-1과 각각 서로소(1외에는 공약수가 없는 수)인 정수 e를 준비한다. 3. ed를 (p-1)(q-1)으로 나눈 나머지가 1의 되도록 하는 d를 구한다.(d는 개인키..

워게임/CTFlearn 2023.02.12

[CTFlearn] ALEXCTF CR2: Many time secrets - 암호학 / XOR

CTFlearn 의 예순 다섯번째 문제 이번엔 Medium 난이도의 암호학 문제이다. 간만에 조금 생각해볼만한 문제가 나왔다. ALEXCTF 라는 대회에서 나왔던 기출문제를 그대로 가져왔나 보다. 문제 설명을 읽어보면 Fady 라는 사람이 one time pad 를 구현했는데 one time pad 에 대해서 정확하게 이해하지 못한 상태에서 만들었다고 한다. 플래그는 ALEXCTF{ 로 시작한다는 힌트도 같이 주어져 있다. 0529242a631234122d2b36697f13272c207f2021283a6b0c7908 2f28202a302029142c653f3c7f2a2636273e3f2d653e25217908 322921780c3a235b3c2c3f207f372e21733a3a2b37263b313012 ..

워게임/CTFlearn 2023.02.06

[HackTheBox] BabyEncryption - 암호학 / Python

HackTheBox 에서 제공하는 암호학 문제 난이도는 그렇게 어렵지 않긴 한데.. 그렇다고 마냥 쉽지많은 않다. HackTheBox 는 난이도 역치가 높은것 같다. 문제에서 제공되는 것은 chall.py 와 msg.enc 파일이다. 먼저 chall.py 의 내용을 보면 암호화 하는 알고리즘을 보여준다. encryption 함수에서 msg 를 인수로 받아 각 글자 * 123 + 18 한 값을 256 으로 나눈 나머지를 ct 배열에 저장하고 있다. 모든 값을 암호화하면 msg.enc 파일을 생성해 거기에 저장하고 끝이 난다. 6e0a9372ec49a3f6930ed8723f9df6f6720ed8d89dc4937222ec7214d89d1e0e352ce0aa6ec82bf622227bb70e7fb7352249b7..

[JISCTF] Call - 암호학 / SMS PDU

쉬우면서도 어려운 문제.. 뭔지만 알면 쉽게 풀 수 있는데, 모르면 정말 오래걸릴 수 있는 문제이다. 문제에서는 별다른 설명 없이 00110000910000FF2E547419646687CFA0F41CA4032993D321D5B8414D9BD348D1397C1293CE63C458753AB3915028B44901 이런 텍스트를 주고 Decrypt 하라고 한다. 16진수로 디코딩 해보고 이전에 풀어봤던 문제에서 나온 Multi-tap 같은걸로 디코딩하려 해봤는데 (https://hackingstudypad.tistory.com/148) 아무것도 먹히지 않았다. 문제 제목이 큰 힌트가 될거라 생각하고 Call 과 관련한 키워드로 구글에 검색을 해봤다. 처음엔 Call Decoder 뭐 이런식으로 검색해보다가 휴..

CTF/암호학 2023.01.24

[CTFlearn] Symbolic Decimals - 암호학 / Python

CTFlearn의 예순번째 문제 전혀 Hard 하지 않은 Hard 난이도의 암호학 문제이다. 문제 설명이 좀 친절하지 않았다면 어려울 수 있는 문제인데 문제 설명이 너무 친절하다.. 심볼로 메세지를 숨기는 방법을 아냐면서 예를 들어주는데 !@#$%^&*( 같은경우 123456789 와 각각 매칭이 된다고 한다. 이것 그냥 키보드 숫자키를 의미하는 것이다. ^&,*$,&),!@#,*#,!!^,(&,!!$,(%,$^,(%,*&,(&,!!$,!!%,(%,$^,(%,&),!!!,!!$,(%,$^,(%,&^,!)%,!)@,!)!,!@% 문제에서 주어진 이 암호문을 키보드 숫자키에 맞춰서 숫자로 바꾸면 무언가 의미있는 데이터가 나올 것이다. 양이 그렇기 길지 않아서 그냥 수작업으로 일일이 바꿔도 되지만 파이썬 코드..

워게임/CTFlearn 2023.01.23

[CTFlearn] Tone dialing - 암호학 / DTMF

CTFlearn의 쉰 일곱번째 문제 알면 쉬운데 모르면 난감한 그런 유형의 문제이다. 근데 사실 문제 제목에서 큰 힌트를 같이 줘서 그렇게 어렵지 않게 풀 수 있다. 우선 주어진 you_know_what_to_do.wav 파일을 받아서 들어보면 뭔가 전화기 숫자 버튼을 누르는 듯한 소리가 들린다. 마침 문제 제목도 Tone dialing 이라고 되어있으니 전화기가 맞는듯 하다. 여기까지 생각했다면 문제의 의도가 명확해진다. 소리를 듣고 어떤 버튼을 눌렀는지 맞춰야 하는 것이다. 근데 사실 절대음감도 아니고, 마땅한 비교 대상이 있는것도 아니라 이 부분이 어렵다. Tone dialing 관련해서 구글에 검색하다보면 DTMF(Dual-tone multi-frequency signaling) 관련된 내용들을 ..

워게임/CTFlearn 2023.01.16

[JISCTF] Upside Down!! - 암호학 / Python

암호학 카테고리의 간단한 문제 간단한 코딩으로 풀 수 있는 문제이다. 별다른 설명 없이 암호화된 플래그가 주어진다. fkhrwv_wldm_vmtorhs_xszizxgvih_xibkgltizksb 위 내용을 Decrypt 하는것이 문제의 목표인데 문제 제목에서 힌트를 얻었다. Upside Down 이니 뭔가 알파벳으로 장난을 쳤을거라고 생각했다. 맨 앞에 있는 f 를 예로 들어보면 f는 알파벳 순서로 봤을때 6번째에 있으니 (a b c d e f) 알파벳을 z부터 a까지 거꾸로 나열했을 때 6번째에 있는 u 로 (z y x w v u) 바꾸면 되지 않을까 하는 생각이 들었다. 생각한 내용을 코드로 옮길때는 ASCII 코드표를 참고했다. 위의 표를 보면 소문자 a는 10진수로 97, 소문자 z는 10진수로 ..

CTF/암호학 2023.01.15

[CTFlearn] Encryption Master - 암호학 / Base64

CTFlearn의 쉰두번째 문제 Hard 난이도의 암호학 카테고리 문제인데 배점이 90점이나 된다. 그런데 실제로 풀어보면.. 어이없을 정도로 쉽다. 난이도는 누가 정하는건지.. 문제에서 주어지는 것은 Here ya go!.txt 파일이다. 메모장으로 열어보면 위와 같은 내용이 써있다. This is NOT going to be fun. 이라는 말과 함께 알수없는 글자들이 써있는데 데이터의 맨 끝을 보면 == 로 끝나는 것을 볼 수 있다. = 은 Base64에서 사용하는 패딩으로 저렇게 알수없는 알파벳+숫자들이 있는 데이터의 맨 끝이 = 또는 == 이라면 Base64 로 인코딩 되었다고 생각하면 거의 맞다. CyberChef(https://gchq.github.io/CyberChef) 에서 Base64 ..

워게임/CTFlearn 2023.01.02

[CTFlearn] RSA Beginner - 암호학 / Python

CTFlearn의 마흔 일곱번째 문제 이번엔 RSA 알고리즘과 관련된 암호학 문제이다. Beginner 라 그런지 이전에 포스팅 했던 문제들이랑 비슷하게 쉽게 풀 수 있다. (https://hackingstudypad.tistory.com/337) RSA는 지금까지도 아주 많이 사용하는 공개키 알고리즘의 이름이다. 개발자인 Rivest, Shamir, Adleman 세명의 이름 앞글자를 따서 RSA 라고 이름을 붙혔다. 엄청나게 큰 숫자일수록 소인수분해가 어렵다는것에 착안해서 설계되었다. RSA의 원리는 아래와 같다. 1. 두 소수 p, q를 준비한다. 2. p-1, q-1과 각각 서로소(1외에는 공약수가 없는 수)인 정수 e를 준비한다. 3. ed를 (p-1)(q-1)으로 나눈 나머지가 1의 되도록 하..

워게임/CTFlearn 2022.12.22

[Cyber Security Rumble] Hashfun - 암호학 / XOR / Python

Hash 인듯 Hash 아닌 문제 조금 헷갈렸는데 어렵지 않게 풀 수 있었다. 문제를 보면 FLAG 를 되돌릴 수 있는 방법은 없을거 같다면서 파일을 하나 제공한다. from secret import FLAG def hashfun(msg): digest = [] for i in range(len(msg) - 4): digest.append(ord(msg[i]) ^ ord(msg[i + 4])) return digest print(hashfun(FLAG)) # [10, 30, 31, 62, 27, 9, 4, 0, 1, 1, 4, 4, 7, 13, 8, 12, 21, 28, 12, 6, 60] 주어진 파일의 내용은 파이썬 코드이다. secret 에서 FLAG 라는 값을 가져와서 hashfun(FLAG) 의 ..

CTF/암호학 2022.12.21
반응형