일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 드림핵
- 시스템해킹
- Bandit Level 1 → Level 2
- dreamhack
- 암호학
- arp
- XSS
- weak key
- Crypto
- RSA
- dns
- shellcode
- AES
- CSRF
- overthewire
- Hastad
- spoofing
- picoCTF
- Franklin-Reiter Related Message Attack
- cryptography
- Montgomery Reduction
- 웹해킹
- pycrpytodome
- bandit
- OverTheWire Bandit Level 1 → Level 2
- redirect
- return address overflow
- RSA Common Modulas Attack
- Cube Root Attack
- rao
- Today
- Total
목록picoCTF (18)
암호(수학) 등.. 공부한 거 잊을거 같아서 만든 블로그

문제 모든 고대 암호들이 그렇게 나쁜 것은 아니었다... 플래그가 표준 형식이 아닙니다. nc mercury.picoctf.net 30568 playfair.py 풀이 문제를 풀기에 앞서, 이 문제는 플레이 페어 암호화 방식을 사용한다 다음 링크를 참고하기 바란다. https://en.wikipedia.org/wiki/Playfair_cipher Playfair cipher - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search Early block substitution cipher The Playfair cipher uses a 5×5 grid of letters, and encrypts a message ..

문제 오라클은 당신의 가장 친한 친구가 될 수 있습니다. 그들은 깃발의 암호문을 제외한 모든 것을 해독할 것입니다. 어떻게 부술 거야? nc mercury.picoctf.net 와 연결합니다. 풀이 nc 연결을 하니 n과 e, ciphertext의 값을 알려주며 입력값을 복호화 해준다. 그래서 ciphertext를 입력값으로 넣었는데 복호화한 값을 안알려 주는 것을 보아, 플래그의 암호문을 그대로 입력하는 것을 막는다. 파이썬에서 계산하기 위해 값들을 입력해주고 n과 서로소인 r값인 2를 구한다. 암호문에 r**e를 곱하고 n으로 나눈 나머지의 값을 구한다. 방금 구한 값을 복호기에 입력해서 복호화한 값을 구한다. 복호화 한 값에 r의 모듈n에 대한 역원을 구해서 곱해주고 이를 n으로 나눈 나머지를 구한..

문제 디렉터리 간을 이동하고 셸에서 파일을 읽는 방법을 알고 있습니까? 컨테이너에 ssh를 붙이고 ls를 연결하면 시작된다. 암호 '6d448c9c'를 사용하여 'ssh'를 통해 'ctf-player'로 로그인합니다. 풀이 Launch Instance 버튼을 눌러 연결정보를 가져오자. ssh ctf-player@venus.picoctf.net -p 50056 를 통해 연결을 할 수 있다. 문제에서 알려준 패스워드인 6d448c9c 를 입력하면 연결이 된 것을 볼 수 있다. 현재 디렉터리에 1of3.flag.txt 파일이 있는 것을 볼 수 있는데, 내용을 확인해본 결과 picoCTF{xxsh_ 가 출력된다. 이전 디렉터리로 경로를 이동하여 위와 같은 방법으로 3of3.flag.txt의 내용을 보니 5190..

문제 터미널에서 탭 완료를 사용하면 특히 길고 횡설수설한 디렉토리 구조와 파일 이름을 다룰 때 몇 년이 더 걸릴 수 있습니다. Addadshashanammu.zip 풀이 주어진 zip 파일을 unzip을 하니 긴이름을 가진 디렉터리들을 볼 수 있다. 탭키를 이용하면 디렉터리를 자동완성 해주는 기능을 사용해서 디렉터리 맨 끝으로 이동을 해보니 fang-of-haynekhtnamet 라는 실행파일이 있는 것을 볼 수 있다. 이 파일을 실행해보니 플래그가 picoCTF{l3v3l_up!_t4k3_4_r35t!_524e3dc4} 인 것을 알 수 있다.

문제 이 이진법으로 데이터를 볼 수 있나요? 정적? 이 BASH 스크립트가 도움이 될 수 있습니다! 풀이 문제에서는 위와 같이 ltdis.sh , static 파일을 제공한다. static 파일의 내용을 보면 문자열 값들이 있는 것을 알 수 있다. 그래서 strings 와 grep 을 사용해서 pico 를 검색해봤더니 플래그가 picoCTF{d15a5m_t34s3r_1e6a7731} 임을 알 수 있다.

문제 셸에서 이 명령을 사용하여 대화할 수 있는 좋은 프로그램이 있습니다: $nc mercury.picoctf.net 43239, 하지만 영어를 할 줄 모른다... 풀이 nc로 접속을 하니 숫자들이 출력되었는데 아마 플래그의 아스키 값이 아닐까 생각된다. 일단 먼저 flag 파일에 출력결과를 저장했다. flag 파일에 저장된 십진수들을 아스키코드로 변환한 문자열을 출력해 주는 코드를 짜봤다. 코드 실행 결과 플래그가 picoCTF{g00d_k1tty!_n1c3_k1tty!_7c0821f5} 임을 알 수 있다.

문제 Python 스크립트는 터미널의 프로그램처럼 호출됩니다. 이 암호를 사용하여 이 파이썬 스크립트를 실행하여 플래그를 가져올 수 있습니까? 풀이 문제 파일로는 ende.py flag.txt.en pw.txt 총 3가지의 파일을 준다. pw.txt는 비밀번호가 적혀있는 텍스트파일이고, flag.txt.en 파일은 플래그가 암호하되어 있는 값이 저장되어 있다는 것을 파일의 이름을 보고 유추할 수 있다. import sys import base64 from cryptography.fernet import Fernet usage_msg = "Usage: "+ sys.argv[0] +" (-e/-d) [file]" help_msg = usage_msg + "\n" +\ "Examples:\n" +\ " To ..