일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- lob
- 자료구조 복습
- BOJ
- Sookmyung Information Security Study
- 숙명여자대학교 정보보안 동아리
- 웹페이지 만들기
- hackctf
- 풀이
- c++
- 파이썬
- 생활코딩
- 드림핵
- HTML
- Javascript
- Python
- C언어
- SWEA
- The Loard of BOF
- hackerrank
- 백준
- 숙명여자대학교 정보보안동아리
- 머신러닝
- BOJ Python
- CSS
- siss
- XSS Game
- c
- 기계학습
- PHP 웹페이지 만들기
- WarGame
- Today
- Total
목록2021 SISS 21기 활동/여름방학 CTF[연합] (20)
혜랑's STORY
이번에 해결할 문제이다. crackme.py를 다운받아 주었다. # Hiding this really important number in an obscure piece of code is brilliant! # AND it's encrypted! # We want our biggest client to know his information is safe with us. bezos_cc_secret = "A:4@r%uL`M-^M0c0AbcM-MFE07b34c`_6N" # Reference alphabet alphabet = "!\"#$%&'()*+,-./0123456789:;?@ABCDEFGHIJKLMNOPQRSTUVWXYZ"+ \ "[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~" d..
이번에 해결할 문제이다. vuln.c는 다음과 같다. #include #include #include #include #define FLAG_BUFFER 128 #define MAX_SYM_LEN 4 typedef struct Stonks { int shares; char symbol[MAX_SYM_LEN + 1]; struct Stonks *next; } Stonk; typedef struct Portfolios { int money; Stonk *head; } Portfolio; int view_portfolio(Portfolio *p) { if (!p) { return 1; } printf("\nPortfolio as of "); fflush(stdout); system("date"); // TOD..
RSA 암호란? 두 개의 키를 사용한다. (공개키, 암호키) 공개키 알고리즘은 누구나 어떤 메시지를 암호화할 수 있지만, 그것을 해독하여 열람할 수 있는 사람은 개인키를 지닌 단 한 사람만이 존재한다. (비대칭키 알고리즘인 이유) RSA는 소인수 분해의 난해함에 기반하여, 공개키만을 가지고는 개인키를 쉽게 짐작할 수 없도록 디자인되어 있다. 키의 생성 암호화 복호화 문제를 해결하기 위해 values를 눌러 다운받았다. Decrypt my super sick RSA: c: 861270243527190895777142537838333832920579264010533029282104230006461420086153423 n: 13110975325625959918779806198497246067841644301..
message를 눌러보니 다음과 같은 문장이 담긴 파일을 얻을 수 있었다. picoCTF{gvswwmrkxlivyfmgsrhnrisegl} 문제 이름으로 카이사르 암호를 사용한다는 것은 알지만 key값을 몰라 얼마나 shift 해야하는지 모르기 때문에 for문을 통해 가능한 경우의 수를 모두 출력하였다. ciphertext = "gvswwmrkxlivyfmgsrhnrisegl" for key in range(0,26): c = list(ciphertext) for i in range(len(c)): c[i] = chr((ord(c[i]) - ord('a') + key) % 26 + ord('a')) plain = ''.join(c) print(plain) 출력 결과를 보고 가장 flag같은 문장을 골라 ..
앞서 해결했던 Mod 26과 같은 ROT13 문제이다. ciphertext = "cvpbPGS{abg_gbb_onq_bs_n_ceboyrz}" c = list(ciphertext) for i in range(len(c)): if c[i] >= 'A' and c[i] = 'a' and c[i]
number를 클릭했더니 사진 한장을 다운받을 수 있었다. 힌트를 보니 flag의 형식이 PICOCTF{...} 라고 하니 다음 숫자에 위치한 알파벳을 대입하면 될 것이라고 생각하였다. c = [] while True: key = int(input()) if key == -1: break c.append(chr(ord('A') + key - 1)) plain = ''.join(c) print(plain) 앞에 PICOCTF와 { } 를 제외한 안에 들어가는 숫자들을 입력해 주었다. 출력되는 문장을 삽입하여 flag를 완성했다. 끝~
# 문제 ROT13은 카이사르 암호의 일종으로 영어 알파벳을 13글자씩 밀어서 만든다. # 풀이 ciphertext = "cvpbPGS{arkg_gvzr_V'yy_gel_2_ebhaqf_bs_ebg13_hyLicInt}" c = list(ciphertext) for i in range(len(c)): if c[i] >= 'A' and c[i] = 'a' and c[i]
# 문제 주어진 숫자를 아스키코드로 변환하는 문제인 것 같다. 간단하게 파이썬으로 코드를 작성하여 확인해보자. ciphertext = [84, 104, 101, 32, 115, 111, 108, 117, 116, 105, 111, 110, 32, 105, 115, 58, 32, 111, 108, 109, 111, 104, 97, 100, 103, 101, 111, 108, 97] for i in ciphertext: print(chr(i), end='') 결과는 다음과 같다. 간단히 문제를 풀 수 있었고 성공이다!