일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 사칙연산
- Python
- 구현
- Digital Forensics
- Web
- Web Hacking
- 문자열
- php
- Forensics
- Incognito
- C
- 써니나타스
- xcz.kr
- 그리디 알고리즘
- Text
- 인코그니토
- 백준
- writeup
- MySQL
- HackCTF
- N0Named
- 수학
- 정렬
- Database
- CTF
- misc
- Network
- cryptography
- wargame
- SuNiNaTas
- Today
- Total
목록분류 전체보기 (439)
보안을 그리다, 훈이
HackCTF MISC 분야 Who am I?(100p) 문제 풀이입니다. 문제를 보니 x86 구조에서 EIP를 터뜨리는 것을 찾으라고 하네요. EIP는 명령 포인터 레지스터이며 다음에 실행해야 할 명령어가 존재하는 메모리 주소가 저장됩니다. ret = pop eip 즉, 플래그 값은 ret가 됩니다. Solve!
HackCTF MISC 분야 BF(50p) 문제 풀이입니다. 특수기호들이 괴상하게 나열되어 있습니다. 구글에 문제 이름인 BF를 검색하였더니 브레인퍽(Brainf***) 프로그래밍 언어라고 하네요. 브레인퍽 - 위키백과, 우리 모두의 백과사전 브레인퍽(Brainfuck)은 우어반 뮐러(Urban Müller)가 1993년 경에 만든 최소주의 컴퓨터 프로그래밍 언어이다. 이름에 포함된 fuck이 욕설이기 때문에, 정중한 표현을 위해서 때때로 Brainf*ck, Brainf***, 혹 ko.wikipedia.org 위키백과를 찾아보니 가장 작은 컴파일러로 구현할 수 있는 간단하면서도 튜링 완전한 프로그래밍 언어를 제작하는 것에 목적을 두고, 8개의 명령어로만 구성했다고 합니다. Brainf*** Online..
HackCTF MISC 분야 Baseball Price(50p) 문제 풀이입니다. nc ctf.j0n9hyun.xyz 9000으로 진입해서 풀어봅시다. 간단한 수학 문제입니다. 대충 계산해보면 야구배트 가격 1.05$, 야구볼 가격 0.05$가 되겠네요. 그대로 입력하면 위와 같이 플래그가 출력됩니다. Solve!
HackCTF Cryptography 분야 Classic Cipher -1(100p) 문제 풀이입니다. 'Classic_Cipher-1.zip' 파일을 압축 해제하면, 'Cipher.txt' 파일이 추출됩니다. 물음표가 맨 앞에 있는 것을 보니 문자열이 거꾸로 뒤집혀 있는 것을 유추할 수 있으며, 문제 힌트인 [::-1]에서 가리키는 바이기도 합니다. 가장 간단한 암호화 방식이라 생각되는 Caesar Cipher 방식으로 복호화해봅시다. Shift 값 7에 따라 알파벳을 변환해주면 바로 Flag를 뽑을 수 있습니다. Solve!
HackCTF Cryptography 분야 Smooth CipherText(100p) 문제 풀이입니다. 암호문의 마지막 줄에 중괄호가 존재하므로 플래그 폼이 치환 암호로 암호화되어 있다고 생각했습니다. 먼저, Caesar Cipher(시저 암호)로 복호화하고자 시도해 보았지만 모든 문자가 일정한 Shift 값을 가지고 있지 않아 정상적인 복호화가 불가능했습니다. 해당 암호문을 Cipher Identifier Online으로 분석해보니 Vigenere Cipher(비즈네르 암호)라고 나와 전용 Decoder로 복호화를 진행했습니다. Vigenere Cipher에 대한 개념은 아래 게시글을 참고하시면 됩니다😊 [관련 게시글] [Cryptography] Vigenere Cipher (비즈네르 암호) [Cryp..
Vigenere Cipher (비즈네르 암호) 비즈네르 암호의 장점은 '빈도분석법'으로 해독이 거의 불가능하다는 사실입니다. 또한, 열쇠의 개수가 무궁무진하다는 것도 큰 장점입니다. 비즈네르 암호는 '복합 알파벳'에 속합니다. 이러한 장점으로 인해 '난공불락의 사이퍼'라는 별명이 붙게 되었습니다. 암호문 제작을 위해서는 아래의 표와 같은 이른바 '비즈네르 표'를 만들어야 합니다. 이 '비즈네르 표'는 원문 알파벳 아래에 26가지 사이퍼 알파벳이 나열되어 있습니다. 사이퍼 알파벳은 한 줄 내려갈 때마다 한 자씩 뒤로 이동하게 되며, 1번 줄은 한 칸, 2번 줄은 두 칸, 3번 줄은 세 칸씩 이동하므로 Caesar Cipher 알파벳과 동일하다고 볼 수 있습니다. 암호문 작성시, 한가지 사이퍼 알파벳만 사용..
HackCTF Cryptography 분야 Great Binary(50p) 문제 풀이입니다. 'hoooo.zip' 파일 압축을 풀어보면 'hoooo.txt'이 나옵니다. 문제 이름에서 알 수 있듯이, 파일을 열어보자마자 Binary 값인 것을 알 수 있습니다. Binary -> Decimal -> ASCII 순서로 변환해주는 코드를 Python으로 구현하였습니다. b = input().split() for i in b: print(chr(int(i, 2)), end='') Binary 값을 넣고 돌려보면 바로 Flag가 출력됩니다. Solve!
HackCTF Web 분야 Login(100p) 문제 풀이입니다. 문제에 링크가 주어져 있네요. 들어가봅시다. http://ctf.j0n9hyun.xyz:2024/ 로그인 폼이 있는 것을 보아 어떠한 문제일지 예상이 됩니다. 먼저, 페이지 소스코드를 봅시다.
HackCTF Forensics 분야 Terrorist(200p) 문제 풀이입니다. 'Artifact.7z' 파일을 다운로드하고 압축을 풀어주니 'mission.jpg' 파일이 추출되네요. 그러나 파일을 열 수 없습니다. 'mission.jpg' 파일의 hex 값을 보도록 합시다. 빨간색으로 표시된 부분인 '00 00 00 18 66 74 79 70 4D 34 41'은 오디오 파일 확장자인 m4a(MPEG-4 Audio)의 시그니처입니다. 따라서, 해당 파일의 확장자를 jpg에서 m4a로 변경하였습니다. 해당 오디오 파일을 들어보니 거꾸로 재생되는 것처럼 들려 audio reverser online을 사용하여 복구하였습니다. Solve!
HackCTF Forensics 분야 나는 해귀다(150p) 문제 풀이입니다. 'waytogo.zip' 파일을 다운로드하고 압축을 풀어봅시다. 민망한 사진이 하나 나오는군요,,,, 뭐 일단.. hex 값을 뒤집어 놓으셨답니다... 'waytogo.png' 파일의 hex 값을 확인해봅시다. png 확장자의 푸터 시그니처인 '49 45 4E 44 AE 42 60 82'를 찾아봅니다. 찾아보니, 시그니처 뒤에 딱 봐도 수상한 값들이 있네요. '.'B.DNEI' 부분이 뭔가 낯이 익습니다. 'waytogo.png' 이미지에 적혀있던 'hex 값을 뒤집어 놓았다'는 글과 같이 png 파일의 hex 값이 완전히 뒤집혀 있네요. 뒤집힌 부분의 hex 값을 'rev_hex.txt'에 따로 저장합니다. 그리고 Pytho..