반응형

해킹대회 617

[CTFlearn] My Friend John - MISC / John the Ripper

CTFlearn의 일흔일곱번째 문제 이번엔 MISC 카테고리의 문제이다. MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 이번 문제는 Easy 난이도 답게 문제 제목과 문제 설명에서 대놓고 John the Ripper 도구를 사용하라고 알려주고 있다. John the Ripper 여러가지 비밀번호를 crack 해주는 기능을 가지고 있다. 문제에서 주어지는 것은 MyFriendJohn.zip 파일이다. 이 파일은 비밀번호가 걸려있지 않다. 압축을 풀면 use-rockyou.zip 파일이 나오는데 이 파일엔 비밀번호가 걸려있다. 그런데 또 친절하게 rockyou 를 사용하라고 알려주고 있다. rockyou 는 무차별 대입을 하기위한 사전파일이다. zip2john > ..

워게임/CTFlearn 2023.03.06

[DiceCTF] babymix - 리버싱 / IDA / Python

쉬운것 같으면서도 쉽지 않은 리버싱 문제 python z3 를 알고있다면 금방 풀수있다. babymix 라는 이름의 바이너리 파일이 하나 주어진다. 한번 실행시켜봤다. admin 비밀번호를 입력하라고 요구하고, 비밀번호가 틀리면 Incorrect 메세지가 출력되면서 종료된다. 바로 IDA 를 이용해 디컴파일 해보았다. main 함수를 보면 사용자의 입력값을 s에 담아 check815546 함수로 집어넣는다. 그 검증결과가 참일경우 Correct 라는 메세지가 출력된다. check815546 함수를 살펴봤다. 사용자가 입력한 값의 각 자리를 계산해서 특정한 조건을 만족시키는지 검증한다. 그런데 한번 검증하고 끝나는게 아니라 여기서 또 check921708 함수를 호출한다. check921708 함수도 마찬..

CTF/리버싱 2023.03.05

[CTFlearn] RE_verseDIS - 리버싱 / IDA / Python

CTFlearn 의 일흔 여섯번째 문제 이번엔 Medium 난이도의 리버싱 문제이다. 숨겨진 비밀번호를 찾으라고 한다. 문제에서 주어지는 것은 problem 파일이다. 리눅스 환경에서 시험삼아 실행시켜 보았다. 비밀번호를 입력받는데 test 라고 입력했더니 틀린 비밀번호라는 문구가 출력된다. 바로 IDA 라는 디스어셈블러를 이용해 problem 파일을 열고, F5를 눌러 main 함수의 수도코드를 살펴보았다. key 배열에 들어있는 값을 key2 배열로 옮겨서 집어넣고, msg 배열에 str[4 * 1] ^ LOBYTE(key2[i]) 의 결과값을 집어넣는다. 그리고 사용자의 입력값이 msg 배열과 같은지 검증하고 있다. key 배열에는 IdontKnowWhatsGoingOn 라는 값이 들어있고, str..

워게임/CTFlearn 2023.03.03

[DiceCTF] Babier CSP - 웹해킹 / 크로스사이트스립트 / CSP

문제 제목처럼 CSP 를 우회하여 XSS 를 해야하는 문제이다. 문제페이지 주소와 쿠키를 탈취해야할 대상인 Admin Bot의 주소가 주어지고 index.js 소스파일이 주어진다. 일단 문제페이지에 들어가봤다. 아래쪽에 View Fruit 라는 버튼이 있는데 이 버튼을 누르면 URL 의 name 파라미터에 apple, orange, pineapple, pear 네 가지 과일이 랜덤하게 들어가고, 그 값을 보이는것처럼 웹페이지에 적어준다. const express = require('express'); const crypto = require("crypto"); const config = require("./config.js"); const app = express() const port = process..

CTF/웹해킹 2023.03.02

[CTFlearn] Smiling ASCII - 포렌식 / HxD / PIL

CTFlearn의 일흔 다섯번째 문제 이번엔 Medium 난이도의 포렌식 문제이다. 문제에서 주어지는 파일은 smiling.png 파일이다. 뭔가 묘하게 기분나쁘게 생겼다. 해당 파일을 HxD 도구를 이용해 열어본다. 파일이 89 50 4E 47 으로 시작하는것을 알 수 있다. 89 50 4E 47로 시작하는것은 PNG 파일의 특징이다. 이런걸 파일 시그니처 라고 한다. 이번엔 HxD에서 스크롤을 내려 파일의 끝으로 이동해 봤다. PNG 파일은 끝날때 49 45 4E 44 AE 42 60 82 로 끝난다. IEND®B`‚ 이렇게 생긴 문자열이 나오면 PNG 파일은 끝난것이다. 그런데 이상한게 위의 문자열이 나왔음에도 뒤에 Base64 인코딩된듯한 데이터가 더 있는것이 보였다. CyberChef(https..

워게임/CTFlearn 2023.03.01

[LACTF] CATS! - MISC / OSINT

MISC 카테고리에 있던 OSINT 관련 문제 OSINT는 Open Source Intelligence 의 약자로 공개출처정보를 의미하고 MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제 설명을 읽어보면 고양이 사진을 보고 이 고양이들이 있는 장소가 어디인지 알아내 달라고 한다. 플래그를 제출할 때는 해당 장소의 웹사이트 도메인을 제출하라고 나와있다. 이게 주어진 고양이 사진이다. 정말 말그대로 CAT HEAVEN 이다. 해당 파일의 속성을 확인해봤더니 경위도 정보가 나와있었다. 경위도를 알면 찾는건 아주 쉽다. 구글 지도를 이용하면 된다. 그런데 이상하게 사진에 있던 경위도를 그대로 써서 검색했더니 북대평양 한가운데 점이 찍혔다. 어떤 섬도 아니고 그냥 망망..

CTF/MISC 2023.02.28

[CTFlearn] MountainMan - 포렌식 / HxD / XOR

CTFlearn 의 일흔 네번째 문제 이번엔 Medium 난이도의 포렌식 문제이다. 문제 설명이 없었다면 어려울뻔 했는데 문제 설명때문에 아주 쉽게 풀 수 있다. 문제 설명을 보면 0xffd9 마커가 두개 있는것에 속지 말고, XOR 이 친구가 되줄거라고 알려준다. 이건 거의 뭐 풀이법을 다 알려준거나 마찬가지다. 우선 문제에서 주어지는 MountainMan.jpg 파일은 이렇게 생겼다. 해당 파일을 먼저 HxD 로 열어보았다. 맨앞이 FF D8 FF E0 로 시작하는걸 볼 수 있는데 FF D8 FF E0 로 시작하는것은 JPG 파일의 특징이다. 마찬가지로 JPG 파일은 FF D9 로 끝이 난다. 저 뒤에 더이상 데이터가 있으면 안되지만 문제 설명에서 언급했던 대로 FF D9 뒤에 약간의 데이터가 더 있..

워게임/CTFlearn 2023.02.27

[LACTF] metaverse - 웹해킹 / 크로스사이트스크립트

기존에 풀었던 XSS 문제보다 조금 더 어려웠던 XSS 문제이다. 문제페이지 주소와 함께 소스코드인 index.js 파일이 주어진다. 문제 페이지는 크게 두가지 구성으로 되어있다. 회원가입하고 로그인 한 뒤 게시글을 작성할 수 있는 페이지와 관리자에게 특정 url을 전달해 해당 url로 관리자가 접속하도록하는 페이지가 있다. 문제 구성상 XSS 취약점이 존재하는 포인트를 찾아서 해당 url을 관리자에게 전달해 관리자의 중요 정보를 탈취하는 것이라고 생각했다. 우선 securityman 이라는 계정을 만들어서 로그인해 보았다. 특이한게 ID와 비밀번호 외에도 metadisplay name 이라는 값을 입력받는다. const accounts = new Map(); accounts.set("admin", { ..

CTF/웹해킹 2023.02.26

[CTFlearn] The Simpsons - 암호학 / HxD / Vigenere Cipher

CTFlearn의 일흔 세번째 문제 이번엔 Hard 난이도의 암호학 문제이다. Hard 치고는 그렇게 어렵지 않다. 이번 문제부터 풀이수가 1,000 밑으로 떨어지기 시작했다. 문제에서는 ItsKrumpingTime.jpg 파일이 주어진다. 해당 파일을 먼저 HxD 로 열어보았다. 맨앞이 FF D8 FF E0 로 시작하는걸 볼 수 있는데 FF D8 FF E0 로 시작하는것은 JPG 파일의 특징이다. 마찬가지로 JPG 파일은 FF D9 로 끝이 난다. 저 뒤에 더이상 데이터가 있으면 안되지만 뭔가 숫자로 된 데이터가 많이 들어있는것이 보인다. Ahh! Realistically the Simpsons would use octal instead of decimal! encoded = 152 162 152 14..

워게임/CTFlearn 2023.02.25

[LACTF] caterpillar - 리버싱 / 자바스크립트

자바스크립트 난독화와 관련된 리버싱 문제 복잡해 보이지만 어렵지 않게 풀 수 있다. const flag = "lactf{XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX}"; if (flag.charCodeAt(-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~[]) == -~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~[]..

CTF/리버싱 2023.02.23
반응형