반응형

QR코드 7

[n00bzCTF] QRazy CSV - 포렌식 / PIL / QR코드

문제 제목에서 QR 코드라고 힌트를 주고 있는 포렌식 문제이다. 문제에서 주어지는 것은 secret.csv 파일이다. 해당 파일을 열어보면 row, col 이라고 적혀있고 그 아래 숫자들이 써있다. row, col 이라는걸 보니 x,y 좌표라고 생각하면 될것 같고, 숫자는 x, y 모두 0부터 28까지 적혀있었다. 위에도 보면 0 ~ 28 범위 내에서 써있는 숫자도 있고, 안써있는 숫자도 있는데 써있는 숫자는 1, 안써있는 숫자는 0 으로 분류해서 해당 좌표에 색을 칠할지 말지 판단하면 되는듯 했다. 이번 문제는 Python PIL 라이브러리를 이용해서 풀었다. PIL은 Python Imaging Library의 약자로 파이썬으로 이미지 처리를 할 수 있도록 해주는 라이브러리이다. pip install ..

CTF/포렌식 2023.06.28

[D^3CTF] d3gif - MISC / PIL

git 파일과 관련된 스테가노그래피 문제 포렌식 느낌인데 MISC 로 분류되었다. MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제에서 주어지는 (x,y,bin).gif 파일은 이렇게 생겼다. 자세히 보면 뒷 배경의 색깔이 계속 바뀌는데 여기에 뭔가 숨겨진 메세지가 있을거라고 생각했다. 문제는 Python PIL 라이브러리를 이용해서 풀었다. PIL은 Python Imaging Library의 약자로 파이썬으로 이미지 처리를 할 수 있도록 해주는 라이브러리이다. pip install image pip install pillow 두 명령어를 이용해서 다운로드 받아주면 된다. from PIL import Image, ImageSequence path = "./gg..

CTF/MISC 2023.05.29

[HackTheBox] Digital Cube - 포렌식 / QR 코드

스테가노그래피와 관련된 MEDIUM 난이도 문제 쉬운듯 쉽지않은 문제이다. 문제에서 주어지는 파일은 digitalcube.txt 파일이다. 해당 파일을 열어보면 이렇게 1과 0으로 이루어져있다. 글자수를 세어보니 총 2,500 글자였고, 문제 설명에 적혀있는 TIME ELAPSED: 50:50 이라고 적힌 부분이 힌트이지 않을까 생각해 50글자씩 끊어서 정리해봤다. 그럼 이렇게 생긴 데이터가 나온다. 두 줄씩 같은 내용이 반복적으로 적혀있는게 보이는데 이게 대체 뭐지 하고 한참 쳐다보다가 의자를 조금 뒤로 빼고 멀리서 봤는데.. QR코드였다.. Google Docs 에 해당 데이터를 복붙한 뒤 1로 되어있는 부분만 까만색으로 형광펜 쳐서 색을 입혔다. 휴대폰 카메라로 조금 멀리서 찍어보니 플래그가 나왔다.

[CTFlearn] Seeing is believing - 포렌식 / Audacity / QR코드

CTFlearn의 일흔 한번째 문제 이번엔 Hard 난이도의 포렌식 문제이다. 솔직히 이 문제는 문제 자체가 어렵다기 보단.. 푸는 과정이 너무 귀찮다.. 문제 설명을 보면 우주 비행사가 보낸 파일을 분석해 도와줘야 한다고 한다. 문제에서 주어지는 것은 help.me 파일이다. 어떤 파일인지 보기 위해 가장 먼저 HxD를 이용해 열어보았다. 4F 67 67 53 (OggS) 로 파일이 시작하는걸 볼 수 있는데 이렇게 시작하는 것은 ogg 파일이다. 해당 값은 ogg 파일의 시그니처 이다. 확장자를 ogg 로 바꿔서 실행해보면 뭔가 지지직 하는 소리가 5초 정도 나다가 끊긴다. Audacity(https://audacity.en.softonic.com/download) 라는 도구를 이용해 해당 파일을 분석..

워게임/CTFlearn 2023.02.20

[CTFlearn] QR Code - MISC / Base64 / ROT13

CTFlearn 의 열일곱번째 문제 분류가 Miscellaneous로 되어있는데 이건 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 근데 사실 이번 문제는 암호학 분야로 분류해도 될것같은 문제이다. 문제제목처럼 QR 코드로 시작하는 문제이다. 문제에서 주어진 주소로 접근하면 이렇게 QR 코드 하나를 받을 수 있다. 이번 문제는 난이도가 어렵지 않아서 그냥 이 QR 코드를 그대로 사용하면 된다. 최근에 이 문제 말고 굉장히 어려운 QR 코드 문제를 푼 적 있는데 조만간 그 문제 Write up을 포스팅 하면서 QR 코드에 대해 자세히 다뤄보겠다. QR 코드는 휴대폰으로 스캔해도 되지만 그럼 데이터를 다시 PC로 옮기기 귀찮기 때문에 온라인 스캐너를 사용하면 편하다(https..

워게임/CTFlearn 2022.08.28

[TigerKingCTF] Swag - 암호학 / QR코드

QR 코드와 관련된 암호학 문제 엄밀히 말하면 암호학은 아니다.. 풀이를 보면 안다. 문제 설명을 읽어보면 친구가 QR코드를 만들어서 보냈고 이걸로 셔츠를 사라고 했다고 한다. 그러면서 주어지는 문제파일이 이렇게 생긴 QR 코드이다. 지금은 딱 보면 아는데 이 대회가 진행되었던게 약 2년전이라 몰랐었다. QR코드가 일반적으로 아는 코드와 완전 다르게 생긴걸 눈치챘을것이다. 보통 자주 만나는 QR코드는 이렇게 큼지막하고 단순한 형태인데 문제에서 주어진 QR코드는 뭔가 작고 복잡한 느낌이다. 이 QR코드의 파일명이 AnimalCrossing.png 인데, 이게 힌트였다. Animal Crossing은 동물의 숲의 영문판 이름이다. 아마 이때 동물의 숲을 플레이 해본 사람이라면 쉽게 풀 수 있었을 것이다. 구..

CTF/암호학 2022.07.27

[UMDCTF] Sensitive - 포렌식 / PDF / Python

포렌식 문제 특별한 설명 없이 sensitive 라는 바이너리 파일 하나만 주어진다. 문제 파일인 sensitive 파일이다. 확장자도 없는 그냥 바이너리 파일같아 보이는데 HxD 프로그램으로 열어보면 PDF 파일인걸 바로 알 수 있다. 자세히보면 보통 PDF 파일과 조금 달라 보이는데 파일을 구성하는 모든 문자열 사이에 스페이스(\x20)가 들어가 있는걸 볼 수 있다. 참고로 일반적인 PDF 파일은 이렇게 생겼다. 여기서 모든 문자 사이에 스페이스바를 눌러 넣은 것이다. 이런 문제는 아주 간단하게 PDF 파일을 열어서 눌러진 스페이스바를 다 없애주면 된다. f1 = open('sensitive', 'rb') read = f1.read()[::2] f2 = open('output.pdf', 'wb') f..

CTF/포렌식 2022.05.12
반응형