반응형

CTF 604

[justCTF] That's not crypto - 리버싱 / uncomplye6

어렵지 않은 리버싱 문제 crypto 문제가 아니라고 문제 제목에서부터 강력하게 어필하고 있다. 문제에서 주어지는 것은 checker.pyc 파일이다. .pyc 파일을 파이썬 코드로 복구하는데는 uncompyle6 라는 도구를 사용한다. pip install uncompyle6 라고 입력하면 다운로드 받을 수 있다. uncompyle6 이라고 입력하면 아래쪽에 디컴파일된 결과가 출력된다. from random import randint def make_correct_array(s): from itertools import accumulate s = map(ord, s) s = accumulate(s) return [x * 69684751861829721459380039 for x in s] def val..

CTF/리버싱 2023.02.15

[CTFlearn] Favorite Color - 포너블 / 버퍼오버플로우 / gdb

CTFlearn의 예순 여덟번째 문제 이번엔 Medium 난이도의 포너블 문제이다. ssh 로 원격 접속할 수 있는 주소가 하나 주어진다. 주어진 명령어를 그대로 입력하고 비밀번호인 guest 를 입력하면 문제 서버에 원격으로 접속할 수 있다. 문제 서버에는 color, color.c, flag.txt, Makefile 파일이 있다. 문제의 목표는 flag.txt 파일의 내용을 읽는 것이다. cat 명령어를 사용해서 읽어보려 했더니 권한이 없어서 읽을 수가 없었다. 이번엔 color 바이너리를 실행시켜 보았다. Enter your favorite color : 이라는 문구가 출력되면서 사용자의 입력을 받는다. red 라고 입력해봤더니 틀린 답이라는 문구가 나온다. #include #include #inc..

워게임/CTFlearn 2023.02.14

[justCTF] MyLittlePwny - 포너블 / Jail Escape

간단한 난이도의 Jail Escape 문제 대회에서는 보이는것 처럼 PWN, MISC 두 카테고리에 동시에 들어가 있는 문제였다. 별도로 파일은 제공되지 않고 nc 명령어를 이용해 원격에서 접속할 수 있도록 해놨다. 원격으로 접속하면 > 프롬포터가 나오면서 사용자의 입력을 받는다. 테스트용으로 hihi 라고 입력해 봤더니 My Little Pony 에 나오는 것 같은 캐릭터가 내가 입력한 말을 그대로 echo 해주었다. 단순히 입력한 말을 그대로 출력해주는데 어떻게 Escape 할 수 있을지 생각해봤다. 방법은 아주 간단했다. ` 기호를 입력하고 그 사이에 명령어를 넣으면 위처럼 명령어가 실행된 결과가 출력된다. 위 사진은 ls 명령어의 실행 결과이다. 중간에 flag 라는 이름의 파일이 보인다. 해당 ..

CTF/포너블 2023.02.13

[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

[boot2root] Vulnerable Adventure 2 - MISC / Python

이전 문제(https://hackingstudypad.tistory.com/413) 와 연계되는 문제이다. 똑같이 전에 제공되었던 client.py 파일을 이용해서 풀 수 있다. import struct import socket import random s = socket.socket() port = 1013 s.connect(('35.238.225.156',port)) coins = 100 health = 100 mana = 100 posx = 0 posy = 0 goblin = 0 terminated = 0 dummyflag = 0 vuln = random.randint(1,500) while(1 == 1): print "Welcome to game" print "What would you like ..

CTF/MISC 2023.02.11

[CTFlearn] Reykjavik - 리버싱 / IDA

CTFlearn 의 예순 여섯번째 문제 이번엔 쉬운 난이도의 리버싱 문제이다. 문제 설명을 보면 gdb 를 이용해보라고 하는데 더 쉬운 IDA 를 이용해 풀것이다. 문제 제목인 Reykjavik 는 아이슬란드의 수도라고 한다. 문제 출제자가 아이슬란드 사람인가 보다. 문제에서 주어지는 것은 Reykjavik 바이너리 파일이다. 한번 실행시켜 봤는데 인자로 플래그를 입력받는듯 했다. 바로 IDA 라는 디스어셈블러를 이용해 바이너리를 열어보았다. main 함수의 수도 코드를 살펴보니 v3 변수에 사용자가 입력한 인수를 저장하고 아래쪽에 strcmp 함수로 v3 와 CTFlearn{Is_This_A_False_Flag?} 가 같은지 비교하고 있다. 같으면 아래쪽 printf 가 실행되는데 이건 가짜 플래그라고..

워게임/CTFlearn 2023.02.09

[boot2root] Vulnerable Adventure - MISC / Python

이번 문제는 뭐라 분류해야 할지 몰라서 MISC 로 넣었다. MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제 설명을 읽어보면 client 를 실행시켜 플래그를 얻으라고 한다. 문제에서 주어지는 파일은 client.py 파일이다. import struct import socket import random s = socket.socket() port = 1013 s.connect(('35.238.225.156',port)) coins = 100 health = 100 mana = 100 posx = 0 posy = 0 goblin = 0 terminated = 0 dummyflag = 0 vuln = random.randint(1,500) print(vuln) ..

CTF/MISC 2023.02.08

[pbctf] Not-stego - MISC

간단한 난이도의 MISC 카테고리 문제 MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제 제목처럼 스테가노그래피 문제인듯 하지만 스테가노그래피는 아닌 그런 문제이다. 문제파일로 profile.png 파일이 주어진다. profile.png 파일의 내용은 위와 같다. 뭔가 어셈블리 언어처럼 생긴 내용들이 가득 써있다. 그런데 자세히 보면 어셈블리어 치고는 뭔가 이상하다. 이건 어떻게 보면 감인데 내용을 봤을때 나열되어 있는 명령어들이 뭔가 체계적이지 않다는 느낌이 든다. jo, jae, bound, arpl 이런 것들이 뭔가 의미가 있어서 수행되는 것이 아니라 그냥 무작위로 배치되어 있는 느낌이다. 두번째로 왼쪽에 써있는 16진수들을 보고도 이상함을 느낄 수 있다..

CTF/MISC 2023.02.05

[CTFlearn] Help Bity - MISC / XOR

CTFlearn의 예순 네번째 문제 이번에는 MISC 카테고리의 Medium 난이도 문제이다. 난이도 자체는 Easy 인데 다른 의미로 어렵다.. MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제 설명을 읽어보면 Bity 가 가지고 있던 플래그를 Noty 가 망가트려버렸다고 한다. 이것을 복원하는걸 도와야 하는데, 기억나는 부분은 플래그의 맨 앞 4자리가 CTFL 로 시작한다는 것이라고 한다. BUGMdsozc0osx^0r^`vdr1ld| 위의 문자열이 문제에서 주어진 망가진 플래그이다. 문제는 허무할 정도로 쉽게 풀린다. CyberChef(https://gchq.github.io/CyberChef) 에서 XOR Brute Force 를 해보면 플래그가 바로 ..

워게임/CTFlearn 2023.02.03

[JISCTF] SOUND!!! - 포렌식 / DeepSound / John the Ripper

간단한 포렌식 문제 비슷한 유형의 문제를 이전에 포스팅 한 적이 있다. (https://hackingstudypad.tistory.com/184) 문제파일로 주어지는 것은 song_file.wav 파일이다. 음악파일이 주어졌을때 주로 사용하는 도구는 audacity 가 있겠지만 이번 문제에서는 다른 도구를 사용해서 풀 수 있었다. DeepSound 라는 도구를 사용했다. DeepSound 도구는 wav, flac, wma, ape 등등 음악파일에 AES-256 암호 알고리즘을 사용해서 Secret file을 숨길 수 있게 해주는 도구이다. 물론 역으로 복원하는것도 가능하다. 프로그램을 실행시킨 뒤에 wav 파일을 드래그 앤 드롭하면 아래쪽에 FLAG.rar 파일이 숨겨져 있다는 것을 알 수 있다. rar..

CTF/포렌식 2023.02.02
반응형