반응형

보안 63

[2021CCE] Read For Me - 리버싱 / WebAssembly / Burp Suite

WebAssembly 와 관련된 리버싱 문제 어셈블리 리버싱이라고 해서 살짝 쫄았는데 그렇게 어렵지많은 않은 문제였다. 문제 페이지 주소와 함께 의문의 Base64 인코딩된 값이 주어진다. 문제페이지에 접속하면 이런 화면이 나온다. pastebin 처럼 뭔가 간단한 메모를 작성해 서버에 저장할 수 있다. 문서작성 버튼을 누르면 이렇게 해당 문서에 대한 코드를 알려주는데 이 코드는 /load 페이지에 입력해서 내가 작성한 글을 불러올 수 있게하는 코드이다. F12를 눌러 개발자 도구를 보니 code.wasm 파일에 이렇게 WebAssembly 가 써있었다. 내용이 엄청 많고 잘 모르는 분야라 일단 아무데나 브레이크 포인트 걸고 하나씩 넘기면서 보고 있었는데 개발자 도구에서 네트워크 탭을 보고 아까 내용에 ..

CTF/리버싱 2023.08.15

[n00bzCTF] EZrev - 리버싱 / Java

Java 리버싱과 관련된 문제 코드만 천천히 따라가면 그렇게 어렵지 않다. 문제에서 주어지는 파일은 EZrev.class 파일이다. .class 파일은 바로 내용을 확인할 순 없고 디컴파일을 해야한다. http://www.javadecompilers.com/ Java decompiler online www.javadecompilers.com .class 파일을 온라인으로 디컴파일 해주는 사이트가 있다. 해당 사이트에서 파일을 업로드하고 Decompile 버튼을 눌러주면 된다. import java.util.Arrays; // // Decompiled by Procyon v0.5.36 // public class EZrev { public static void main(final String[] array..

CTF/리버싱 2023.07.03

[Root Me] EXIF - Thumbnail - 포렌식 / Forensically / HxD

정말 오랜만에 업로드 해보는 Root Me문제 JPG 파일과 관련된 스테가노그래피 문제이다. JPG 파일에서 숨겨진 비밀번호를 찾으면 된다. 문제에서 주어지는것인 이 파일이다. 디카프리오가 나오는 사진인데 HxD 로 파일을 열어보면 이렇게 나온다. JPG 파일의 시그니처인 FF D8 FF E0 가 맨 앞에 나오고, 잠시 뒤에 다시한번 시그니처인 FF D8 FF E0 가 나온 뒤 그뒤에 We need to go deeper 라는 문장이 나온다. 저 부분이 썸네일 부분이다. 두번째 FF D8 FF E0 부터 파일의 맨 끝까지 복사한 뒤, 새로만들기에 붙혀넣기 해서 JPG 파일로 저장해주면 썸네일이 추출되면서 그 안에 있는 플래그를 찾을 수 있다. 온라인으로도 풀 수 있다. Forensically 라는 사이트..

워게임/Root Me 2023.05.26

[Tenable CTF] Play Me - 리버싱 / VisualBoyAdvance

Tenable CTF 에서 처음 접해본 게임 리버싱 문제 재밌는 문제였다. game.gb 파일이 문제로 주어지는데 이건 VisualBoyAdvance 를 이용해 실행시킬 수 있다. 실행시키면 이런 화면이 나온다. 슈퍼마리오 같은 간단한 게임이다. 점프해서 장애물을 넘어 오른쪽 끝으로 가면 된다. 순조롭게 진행되다가 이 부분 이후로는 게임을 더이상 진행시킬 수 없다. 마지막에 보이는 발판은 발판이 아니라 그냥 배경그림이다.. 그래서 아무리 점프를 해도 저 발판을 밟을수가 없다. VisualBoyAdvance 의 기능을 이용해 본다. Tools 메뉴에서 Memory viewer 기능을 선택한다. 그럼 게임이 진행되는 동안 메모리 상태를 실시간으로 확인할 수 있다. 주목할 부분은 C0AC, COAE 부분의 값..

CTF/리버싱 2023.04.08

[CTFlearn] Time to Eat - 리버싱 / Python

CTFlearn의 여든 세번째 문제 이번에는 Medium 난이도의 리버싱 문제이다. 문제파일로는 파일이 제공된다. 문제에서 제공되는 코드를 열어보면 이렇게 적혀있다. eat, EaT, eaT, eAT 등 변수나 함수 이름을 상당히 헷갈리게 적어놔서 그냥 봐선 대체 무슨 말인지 알기가 어렵다. 일단 실행시켜봤다. what's the answer 라는 문구가 나오며 사용자 입력을 받는다. hello 라고 입력해 봤더니 bad length 라는 문구가 출력되었다. 사용자 입력값을 eat 에 저장하고 eat 가 9 와 같은지 비교하고 있는데 이 부분이 길이를 체크하는 부분이다. 입력값을 9자리여야 한다. 이번엔 aaaaaaaaa 라고 입력해봤다. bad format 이라면서 입력값의 예시를 출력해준다. 입력값은..

CTF/리버싱 2023.03.31

[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

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

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

CTF/리버싱 2023.02.23

[CTFlearn] Rock Paper Scissors - MISC

CTFlearn의 일흔 두번째 문제 이번엔 MISC 카테고리의 Medium 난이도 문제이다. MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 솔직히 이 문제를 왜 냈는지, 왜 Medium 인지 이해할 수 없는 문제이다.. 문제 설명을 보면 가위 바위 보 게임을 해서 10연승을 하면 된다고 한다. 원격으로 접속할 수 있는 서버 주소가 주어진다. 터미널에 주어진 명령어를 그대로 입력하면 된다. 가위 바위 보 10 게임 이기면 플래그를 준다고 한다. R / P / S 중 하나를 선택해서 입력하면 된다. 처음에 바위를 먼저 내봤다. 컴퓨터도 R을 내서 비겼고, 이기지 못했다는 안내문구가 뜬다. 그리고 추가로 이상한 숫자와 함께 이 숫자를 근거로 바위를 냈다고 알려주는데 ..

워게임/CTFlearn 2023.02.22

[LACTF] EBE - MISC / Wireshark / Tshark

MISC 카테고리에 있던 문제 포렌식으로 분류해도 될 것 같다. MISC는 miscellaneous의 약자로 여러가지 잡다한 이라는 의미를 가지고 있다. 문제 설명을 읽어보면 친구에게 UDP 를 이용해 플래그를 한글자씩 보내고 있었는데 누군가가 이상한 데이터를 보내서 망쳐놨다고 한다. RFC 3514 와 관련있을거 같다는 힌트가 같이 주어진다. RFC 3514 가 뭔지 궁금해서 구글에 검색해봤다. 위키피디아 문서가 하나 나오는데 Evil bit 이라는 제목이다. IPv4 패킷 헤더에 추가되는 만우절에 만들어진 뭔가인듯 하다. 일단 여기까지만 대충 보고 문제 파일로 바로 들어갔다. 먼저 주어진 EBE.pcap 파일을 Wireshark 를 이용해 열어보았다. 10.0.1.10 에서 10.0.1.5 로 보내는..

CTF/MISC 2023.02.21
반응형