반응형

CTF 604

[HackTheBox] LoveTok - 웹해킹 / Command Injection

HackTheBox 에서 제공하는 LoveTok 문제 웹해킹 문제로 Command Injection 취약점을 이용한 문제이다. 문제페이지에 접속했을 때 화면이다. You'll find love: 라고하면서 어떤 시간을 알려주고 있다. 아래쪽에 있는 Nah, that doesn't work for me. Try again! 이라는 문구는 위에 있는 시간이 마음에 들지 않을 때 누르는 버튼이다. 버튼을 누르면 URL이 /?format=r 이라고 바뀌면서 시간도 같이 바뀌게 된다. 주어지는 소스코드도 같이 살펴보자. TimeController.php 파일을 먼저 살펴본다. isset 으로 format 파라미터가 GET 요청에 있으면 그대로 쓰고, 없으면 r 값을 넣어준다. 이건 아까 빨간 버튼 눌러서 확인한 ..

[2020CCE] Document Malware Analysis #1~3 - 포렌식 / SSView / HWP

이번부터 풀이할 문제는 2020년에 진행되었던 국정원 주최 사이버공격방어대회 본선 문제이다. 본선에서는 예선과 조금 다르게 침해사고 조사 위주로 문제가 나왔었다. 대회 당시에 캡쳐를 제대로 해놓지 않아서 기억에 의존해서 풀이를 작성하는거라 정확하지 않을 수 있다. #1 문서형 악성코드를 분석하여 플래그를 찾아라 첫번째는 문서형 악성코드를 분석해 플래그를 찾는 것이다. Amazing_information_about_a_infectious_diseases.eml 라는 제목의 eml 파일이 주어진다. eml 파일은 마이크로소프트에서 개발한 이메일 포멧으로 OutLook 을 이용하면 바로 열어볼 수 있다. eml 파일을 OutLook을 이용해 열어보면 이런 내용이 나온다. 대회당시 한창 코로나19 초기여서 민감..

CTF/포렌식 2022.11.14

[CTFlearn] Inj3ction Time - 웹해킹 / SQL Injection

CTFlearn의 서른 여섯번째 문제 사실 이 문제는 이전에 포스팅한 문제보다 훨씬 앞에 있는데 빼먹고 넘어가버려서 실제 CTFlearn에 있는 문제 순서와 포스팅 순서가 조금 다르게 되어버렸다. 오랜만에 만난 Hard 난이도의 문제이다. 점수는 무려 100점이다. 난이도와 점수때문에 조금 흠칫 할수도 있지만 이 문제는 SQL Injection의 정석같은 문제라 그렇게 어렵지 않게 풀 수 있다. 문제설명에서 문제 페이지 주소가 제공되고, 힌트로 UNION 이 도움이 될 거라고 알려주고 있다. 문제페이지에 접속하면 이런 화면이 나온다. Dog Viewer 라고 되어있고, ID를 입력할 수 있는 칸이 보인다. 아래쪽에 나오는 정보를 보니 강아지들 정보를 조회하는 기능인것 같다. 시험삼아 ID 입력창에 HEL..

워게임/CTFlearn 2022.11.13

[PoseidonCTF] The Large Cherries - 리버싱 / IDA / Pwntool

쉬운 난이도의 리버싱 문제 원격으로 접속할 수 있는 주소와 Lao-Tzu 라는 이름의 바이너리 파일이 제공된다. 참고로 Lao-Tzu 는 춘추시대 철학자인 노자를 말한다. Lao-Tzu 파일을 리눅스 환경에서 실행시켜 보았다. Enter the secret for the magic word : 라면서 사용자의 입력을 기다린다. 123 이라고 입력해봤는데 magic word 가 아닌지 바로 프로그램이 종료되었다. 바로 IDA를 이용해 바이너리를 열어서 main 함수를 살펴보았다. Enter the secret for the magic word : 라는 문구가 출력된 후에, scanf 로 사용자 입력을 받아 v9 변수에 저장한다. 그다음 magic_word 함수에 v9를 인수로 집어넣고, 그 결과를 v4에 ..

CTF/리버싱 2022.11.12

[Root Me] APNG - Just A PNG - 포렌식 / 스테가노그래피

오랜만에 풀어본 Root Me의 스테가노그래피 문제 처음 보는 문제유형이라 신기했다. 문제 설명을 읽어보면 대학 동기가 애니메이션 안에 어떤 메세지를 숨겨놓았다고 적혀있다. 문제 제목은 APNG 인데 이게 아주 큰 힌트였다. 문제에서 주어지는것은 ch21.apng 파일이다. 문제 제목과 확장자가 일치하는게 뭔가 있는것 같다. 뭔가 특이한 점이 있나 살펴보기 위해 HxD로 해당 파일을 열어보았다. 맨 앞부분이 89 50 4E 47 0D 0A 1A 0A 로 시작하는것을 볼 수 있는데 모든 PNG 파일은 89 50 4E 47 0D 0A 1A 0A 로 시작한다. 이런걸 파일 시그니처 라고 하는데 아무 PNG 파일이나 골라서 HxD 프로그램으로 열어보면 이렇게 파일의 맨 앞에 똑같이 89 50 4E 47 0D 0..

워게임/Root Me 2022.11.11

[CTFlearn] Gobustme? - 웹해킹 / dirb / Python

CTFlearn의 서른다섯번째 문제 이번엔 easy 난이도의 웹해킹 문제이다. 문제 설명을 일어보면 ghost 들이 웹사이트를 만들었는데 숨겨진 장소가 있는것 같다고 한다. 아래쪽에 웹 페이지 주소가 적혀있다. 문제페이지에 접속하면 이런 화면이 나온다. ghost 들이 웹사이트에 침임해서 flag 를 어딘가에 숨겨놓았다고 적혀있다. 스크롤을 내려보면 아래쪽에 가사같은게 써있는데 마지막 줄에 보면 common wordlist 가 도움이 될거라고 적혀있다. common wordlist 를 눌러보면 이런 화면이 나온다. 웹 페이지를 구성할때 자주 쓰는 파일, 폴더명이 주욱 적혀있다. 이걸 주소창에 하나씩 대입해보면 실마리를 찾을 수 있을 것이다. 이번 문제처럼 URL에 무차별적으로 대입해서 웹 구조를 파악하는..

워게임/CTFlearn 2022.11.09

[2020CCE] Simple Pwn - 포너블 / 버퍼오버플로우 / Pwndbg / Pwntool / IDA

2020년에 진행되었던 국정원 주최 사이버공격방어대회 묵혀놨던 Write Up을 이제야 포스팅 해 본다. 이번에 풀이할 문제는 simple pwn 이라는 포너블 문제이다. 이번 대회에서 가장 쉬웠던 포너블 문제로 스택 버퍼오버플로우 관련된 문제이다. 문제파일로 simple_pwn 이라는 바이너리가 주어진다. 한번 해당 파일을 실행시켜봤다. Welcome. This will help you : 라고하면서 이상한 16진수 값을 던져주고 사용자의 입력을 기다린다. what 이라고 아무단어나 입력해봤더니 그대로 프로그램이 종료되었다. IDA 라는 디스어셈블러를 이용해 바이너리를 열어보았다. main 함수 외에 특별한 함수는 보이지 않는다. main 함수에서는 128바이트 크기의 v4 변수를 선언하는데, gets..

CTF/포너블 2022.11.08

[HackTheBox] Gunship - 웹해킹 / Prototype Pollution / RCE

HackTheBox 에서 제공하는 very easy 난이도의 웹해킹 문제 프로토타입 폴루션과 관련된 문제인데 당시 프로토타입 폴루션이라는걸 처음 접해봐서 푸는데 시간이 좀 걸렸다. 사실 아직도 완벽하게 이해는 못했다. 문제페이지에 접속하면 이런 화면이 나온다. 레트로 감성 가득한 웹페이지에 Who's your favourite artist? 라는 문구와 함께 이름을 입력하는 창이 보인다. 찾아보니 Gunship 은 밴드의 이름이다. Alex Gingell, Dan Haigh, Alex Westaway 세 사람으로 이루어졌다고 한다. const path = require('path'); const express = require('express'); const pug = require('pug'); con..

[2020CCE] Easy RSA - 암호학 / RsaCtfTool / Python

2020년에 진행되었던 국정원 주최 사이버공격방어대회 묵혀놨던 Write Up을 이제야 포스팅 해 본다. 이번에 풀이할 문제는 Easy RSA 문제이다. 문제 제목에 나온것 처럼 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는 개인키로 ..

CTF/암호학 2022.11.06

[Root Me] NoSQL injection - Authentication - 웹해킹 / Python

NoSQL Injection 과 관련된 웹해킹 문제 NoSQL 이란 Not only SQL 의 약자로 SQL 만을 사용하지 않는 DBMS 를 말한다. 기존 관계형 데이터베이스 보다 덜 제한적인 특징을 가진다. 이번 문제의 목표는 NoSQL Injection 을 통해 숨겨진 USER 를 찾는 것이다. 문제 페이지에 접속하면 이런 로그인 창이 나온다. 시험삼아 ID 와 PW 에 hello / hello 라고 입력해봤다. Bad username or bad password 라는 문구가 출력된다. URL을 보니 입력한 ID 와 비밀번호를 GET 방식으로 서버에 전송하고 있다. ID 는 login 변수에, 비밀번호는 pass 변수에 담아서 넘긴다. https://github.com/swisskyrepo/Paylo..

워게임/Root Me 2022.11.05
반응형