2024/07 22

XML and JSON

XML(eXtensible Markup Language)태그 베이스의 마크업 언어.(HTML과 상당히 유사)문법 형식 또한 HTML과 같다. !!다만!!: 무조건 닫는 태그가 있다.(HTML은 닫는 태그가 필요 없는 것들도 있음 ex. img태그)기본 형식 // xml임을 명시(헤더) // 루트 태그( 과 같은 기능)...  장∙단점(pros and cons of XML) 장점)알기 쉽다(읽기 쉽다 사람이나 컴퓨터나)오랫동안 써왔고 그만큼 발전해서 도구가 많다.모든 일반적 데이터 표현 가능좀 표준적임단점)간단한 데이터도 복잡하게 써진다...어차피 JS가 해석해야 해서 XML DOM이 막 변형되고.. 어쩌구..최근 추세, JSON(JavaScript Object Notation)최근에는 JSON을 사용하는..

3SCTF2024) 돈돈돈 쓰쓰쓰 돈돈돈 MISC문제

파일을 받아보면 pcapng 파일이다.TCP 따라가기를 해보면,이상하게 반복되는 값들이 나온다.뭐지.. 하고 고민하다가 일단 문자로 바꿔볼까 하고 바꿔보았다.print(chr(0x2e)) print(chr(0x2d)) 실행결과:.-!! 점(dot, .)과 바(bar, -)였다. 보자마자 모스부호가 바로 생각났다.그래서 바꿔보니(파이썬 코드로 바꿨다)morse = list(input().split()) decode_morse = [] for m in morse: one_word = [] for i in range(0, len(m), 2): tmp = int(m[i] + m[i+1], 16) tmp = chr(tmp) one_word.a..

CTF/3SCTF2024 2024.07.28

3SCTF2024) DUM DUM :P 포렌식 문제

파일을 받아보면 dump.bin 파일이 있다.HxD로 열어보면여러 파일들이 섞여 있는 듯 하다.foremost를 사용해 보았다. foremost -t all -i dump.bin 해보니,이런 것 뿐이었고... 플래그가 아니었다.엥 말이 안되는데 하면서 다시한번 HxD를 봤다.IEND라는 문자열로 검색하다가 우연히 7z 파일 시그니처를 보았다.!! 7z도 있네 하면서 저 파일 부분 바이트를 따로 새로 복붙해서 파일을 만들었다.7z 파일 안에는 txt 파일 여러개가 존재했다.저 중에서 diye.txt에 플래그가 존재했다. FLAG: 3S{EA5Y_DUMP_F1L3_G00D_:P}

CTF/3SCTF2024 2024.07.28

3SCTF2024) Find Spade 리버싱 문제

일단 저 스페이드 문자는 실제로 유니코드 값으로 0x2660이다.그리고 아래 식들을 보면, 한 줄당 하나의 알파벳의 값을 구할 수 있음을 알 수 있다.그리고 Flag는 해당 알파벳들을 순서대로 나열하고 아스키 코드값으로 바꾸면 된다는 것을 명시해 놓았다.그래서 차례대로 알파벳을 계산해 보면(아래 파이썬 코드로 계산시켰다)i = 1 cnt = 0 alphabets = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0] while cnt > 1) + 0x1460 == 0x2660: if not alphabets[5]: alphabets[5] = i cnt += 1 if 0x75 * (i  실행결과 :u | 117 | 20q |..

CTF/3SCTF2024 2024.07.28

Pair STL

서로 다른 2개의 연관된 데이터를 하나의 데이터로 묶어서 관리할 수 있게 해주는 STL.data1data2한 pair가 저렇게 생겼다.다양한 방면에서 사용할 수 있다. 대표적으론 다음과 같다.인덱스와 그 인덱스에 해당하는 데이터를 따로 저장해야 할 경우좌표를 저장해야 할 경우키 값과, 비교해야하는 값(우선순위가 있는 값) 쌍일 경우 등사용 방법헤더 파일라는 헤더 파일에 있는데, 사실 이 헤더 파일은 혹은, 에 포함되어 있다.#include #include #include 3 가지 헤더 파일 중 하나라도 있으면 사용이 가능하다.선언pair p;type1, type2에는 저장할 데이터의 자료형을 적어주면 된다.둘이 같아도 무방하다.메소드p는 pair 변수라 가정한다.p.first // 첫 번째 페이 데이..

시작해요 언리얼 2022 무작정 따라하기 - 4주차

KEYWORDS:텔레포트, 점프대, 떨어지는발판, 트리거로함정작동, 함정, 콜리전, 바운스, 자동 활성화, 피직스 시뮬레이트, 프로젝틸무브먼트(발사체속성), 박스콜리전마지막 차시인 4주차에서는 다음과 같이 크게 4가지를 실습한다.텔레포트 발판 만들기밟으면 곧 떨어지는 발판 만들기점프대 만들기밟으면 함정이 작동하는 발판과 함정 만들기텔레포트 발판 만들기발판 하나 만들기블루프린트 생성스태틱 매시 하나 더(텔레포트 작용 위치 표시용)트리거 역할을 할 box collision 추가이제 블루프린트의 이벤트 그래프를 건드리고, 텔레포트 지점을 등록해주기만 하면 된다.다음과 같은 동작들을 블루프린트로 만들어주면 된다.캐릭터가 텔레포트 지점에 닿으면 텔레포트 할 때까지 멈춤나이아가라를 이용해 만든 이펙트가 발생딜레이를..

Type Error

타입을 반환하거나.. 변환하거나... 한 타입에서 다른 타입으로 값이 옮겨지는 과정의 논리적 취약점이다.예를 들면)int로 값을 입력받아 특정 함수에 넘겨준다.해당 함수에서 어떠한 검사 과정을 거쳐, int형으로 값을 반환한다.반환 받는 변수가 unsigned short형이다.위 과정에서 int -> unsigned short로 바뀌면서 소실이 일어난다.해당하는 CTF 문제 하나를 예시로 마무리하겠다.#include #include #include #define MAX_ID_LEN 10#define USERS_COUNT 5char account_id[USERS_COUNT][MAX_ID_LEN] = { "james", "sarah", "gildong", "asdf1234", "admin" };int get..

Hacking/Pwnable 2024.07.18

Deque STL

덱 STL 사용법.사용 방법헤더 파일#include 선언deque variable_name;type에 원하는 타입 적고, 변수명을 적어주면 된다.메소드D는 deque 변수라 가정한다.D.push_front(data)D.push_back(data)D.size()D.empty()D.pop_front()D.pop_back()D.front()D.back()D.begin()D.end()D.clear()D.insert(address) // ex) D.insert(D.begin() + 1)D.erase(address) // ex) D.erase(D.begin() + 3)순회for(auto x : D) cout 특징앞, 뒤에서 삽입 및 삭제가 가능하다.맨 앞, 맨 뒤에서의 작업은 O(1)이다.원래는 안되지만 STL D..

Foremost tool

위키문서 : https://en.wikipedia.org/wiki/Foremost_(software)참고자료 : https://m.blog.naver.com/koromoon/220553895618 포렌식 CTF 문제에서 사용할 수 있는 툴입니다.어떤 파일 안의 다른 파일이 숨겨져 있을 경우, 추출해줍니다.예를 들면ELF 시그니쳐로 시작하는 파일 속에, PNG 시그니처, JPEG 시그니처 등이 보여서 안에 다른 파일이 숨겨진 듯 할 때파일 용량이 뭔가 이상하게 클 때(파일의 형식에 비해)등, 이 툴을 이용해 문제를 해결할 수 있습니다. 사용 방법은 foremost -h를 치면 쭈루룩 나오긴 합니다.$ foremost [-v|-V|-h|-T|-Q|-q|-a|-w-d] [-t ] [-s ] [-k ]     ..

Hacking/MISC 2024.07.17

Queue STL

리스트, 스택에 이어 큐도 STL에 당연히 있다.사용 방법헤더 파일#include 선언queue variable_name;type에 원하는 타입(int, char ...)을 적어주면 된다.메소드Q는 queue 변수라 가정한다.Q.push(data)Q.size()Q.empty()Q.pop()Q.front()Q.back()주의할 점: front와 back, pop은 비어있는데 사용하면 런타임 에러가 발생한다.특징back으로 삽입, front에서 제거가 이루어지고 시간복잡도는 O(1)이다. (FIFO)인덱스로 참조 불가능하다.