반응형

전체 글 714

[justCTF] PDF is broken, and so is this file - 포렌식 / binwalk / HxD / Ruby

조금 어려웠던 포렌식 카테고리의 문제 문제 설명을 읽어보면 PDF 파일이 플래그를 가지고 있는데 사전에 뭔가 작업을 해야 찾을 수 있다고 한다. 문제에서 주어지는 파일은 challenge.pdf 파일이다. 썸네일을 보면 알 수 있겠지만 해당 파일을 열어보면 아무런 내용이 없은 백지 상태이다. 해당 PDF 파일을 HxD 를 이용해 분석해봤다. PDF 파일을 열면 가장 먼저 앞에 %PDF 라는 문자가 있어야 하는데 이 파일은 그렇지 않고 앞에 require 'json' require 'cgi' require 'socket' =begin 라는 문자열이 적혀있었다. 파일 중간중간에도 보면 일반적으로 PDF 파일 안에 있을법한 내용이 아닌 다른 내용들이 눈에 띄었다. ruby-doc 를 찾아보니 모듈을 불러오는 ..

CTF/포렌식 2023.02.17

[CTFlearn] RIP my bof - 포너블 / 버퍼오버플로우 / Pwndbg / Pwntool

CTFlearn 의 예순 아홉번째 문제 후반부로 갈수록 포너블 문제가 비중이 높아지는듯 하다. 이번엔 그래도 쉬운 난이도의 포너블 문제이다. 지난번 풀이했던 Simple bof 문제보다 살짝 더 어려워졌다. (https://hackingstudypad.tistory.com/380) 문제에서 주어지는 것은 bof2.c 소스코드와 바이너리인 server 파일이다. server 파일은 문제에서 제공된 서버(thekidofarcrania.com:4902) 에서 돌아가고 있는 파일이다. 한번 서버에 접속해본다. nc 명령어를 이용해 접속할 수 있다. 그럼 지난번처럼 친절하게 스택의 모습을 다 보여준다. Input some text : 라는 문구가 출력되고 사용자 입력을 받는데 어떤 값을 입력하면 그 값이 스택에 ..

워게임/CTFlearn 2023.02.16

[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

[AWS Cloud Practitioner] 시험정보 / 후기 / 공부방법

2022년 12월 취득한 AWS Cloud Practitioner 자격증 AWS 에서 주관하고 있는 AWS 클라우드 관련 자격증이다. AWS 에서 주관하는 자격증이 총 12개가 있는데 Cloud Practitioner 는 그중 가장 쉬운 난이도의 자격증이다. 자격증 시험은 총 90분간 치뤄지고 한번 응시하는데 100 달러가 든다. 총 65개 문항으로 구성되어 있으며, 모두 객관식 문제이고 기본적으로 4지선다인데 복수정답을 선택하는 문제가 일부 섞여있다. AWS 클라우드의 가치 설명 AWS 공동 책임 모델 이해 및 설명 보안 모범 사례 이해 AWS 클라우드 비용, 경제성 및 결제 관행 이해 컴퓨팅, 네트워크, 데이터베이스, 스토리지를 포함한 핵심 AWS 서비스 설명 포지셔닝 일반 사용 사례에 맞는 AWS ..

[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
반응형