반응형

암호 78

[HackTheBox] xorxorxor - 암호학

제목 그대로 정직한 XOR 과 관련된 암호학 문제이다. 문제에서 제공되는 파일은 output.txt 파일이다. 해당 파일을 열어보면 암호화된 플래그가 적혀있다. 당연하겠지만 XOR 을 이용해서 암호화 됐을것이다. 암호화하는 파이썬 코드도 함께 주어진다. 암호화하는 과정을 살펴보면 os.urandom(4) 로 4바이트짜리 임의의 키를 생성해서 그 키값과 플래그를 XOR 연산을 한다. 랜덤이라 경우의 수가 굉장히 많지만 HackTheBox 에서의 플래그는 HTB{ 로 시작한다는 사실일 알기때문에 아주 쉽게 풀 수 있다. CyberChef(https://gchq.github.io/CyberChef) 를 이용해서 HTB{ 를 16진수로 바꿔보면 48 54 42 7b 가 된다. 이 값을 암호화된 플래그 맨 앞자리..

[CTFlearn] CoppeRSA Lattice - 암호학 / RsaCtfTool

CTFlearn 의 여든한번째 문제 이번엔 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는 개인키로 공개하지 않는다) 4. n=pq를 계산한 후 n과 e를 공개한다.(이 둘이 ..

워게임/CTFlearn 2023.03.28

[Tenable CTF] Quit messing with my flags - 암호학 / MD5

풀이수로 알 수 있는것처럼 아주아주 쉬운 문제이다. flag{161EBD7D45089B3446EE4E0D86DBCF92} 문제 설명을 보면 위처럼 플래그 처럼 보이는 것이 주어져 있다. 물론 이게 진짜 플래그는 아니다. {} 중괄호 사이에 있는 문자열들을 보면 총 32 글자인것을 알 수 있다. 이렇게 글자수가 32이고 0~9, A~F 까지의 문자열로 이루어져있다면 해시 알고리즘 중 하나인 MD5 를 의심해봐야한다. https://www.md5online.org/md5-decrypt.html MD5 Online | Free MD5 Decryption, MD5 Hash Decoder www.md5online.org 구글에 검색해보면 MD5를 Decrypt 할 수 있는 온라인 사이트가 아주 많이 나온다. 위 ..

CTF/암호학 2023.03.20

[Tenable CTF] Not JSON - 암호학 / Base64 / Python

어렵진 않지만 조금 고민했던 문제이다. 문제에서 주어지는 것은 Base64 로 인코딩된 듯한 긴 문자열이다. 일단 바로 CyberChef(https://gchq.github.io/CyberChef/) 에서 Base64 디코딩을 해보았다. 뭔가 디코딩이 되긴 되는거 같은데.. 깔끔하지 않은 느낌이었다. 좀더 자세히 보기 위해 To Hex 레시피를 추가해 16진수값으로 한번 살펴보았다. notepad++ 에 옮겨적고 천천히 분석해봤더니 패턴이 보였다. 빨간 화살표가 표시된 1....2..... 부분부터 16진수 값에 특정한 패턴이 보였다. 맨앞에 있는 30, 31, 32, 33 ... 이 숫자들은 ASCII 코드로 0,1,2,3... 을 의미하는데 이 숫자들은 플래그의 INDEX 값이다. 그리고 세번째 열(..

CTF/암호학 2023.03.16

[CTFlearn] XOR Is Friend Not Food - 암호학

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 을 보면 뭔가 결과가 제대로 나오지 않는 느낌인데 이건 중간중간에 인코딩된 문자열이 포함되어있..

워게임/CTFlearn 2023.03.10

[CTFlearn] The Simpsons - 암호학 / HxD / Vigenere Cipher

CTFlearn의 일흔 세번째 문제 이번엔 Hard 난이도의 암호학 문제이다. Hard 치고는 그렇게 어렵지 않다. 이번 문제부터 풀이수가 1,000 밑으로 떨어지기 시작했다. 문제에서는 ItsKrumpingTime.jpg 파일이 주어진다. 해당 파일을 먼저 HxD 로 열어보았다. 맨앞이 FF D8 FF E0 로 시작하는걸 볼 수 있는데 FF D8 FF E0 로 시작하는것은 JPG 파일의 특징이다. 마찬가지로 JPG 파일은 FF D9 로 끝이 난다. 저 뒤에 더이상 데이터가 있으면 안되지만 뭔가 숫자로 된 데이터가 많이 들어있는것이 보인다. Ahh! Realistically the Simpsons would use octal instead of decimal! encoded = 152 162 152 14..

워게임/CTFlearn 2023.02.25

[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
반응형