wargame/Dreamhack
-
Dreamhack - rev-basic-1wargame/Dreamhack 2024. 5. 21. 21:28
[Beginner - rev-basic-1 - reversing] rev-basic-0 문제를 풀었으면 이 문제는 바로 풀 수 있다.똑같이 입력값을 검증해서 맞으면 Correct, 틀리면 Wrong을 출력하고, 플래그는 Correct가 출력되는 입력값이다. 바로 x64dbg로 문제파일에 있던 실행파일을 열어본다.입력은 일단 아무것도 모르니까 test로 입력한다.그런데 마찬가지로 f7로 얼마 실행시키지 않았는데 정답이 문자 하나씩 다 나오고 있다. 계속 이렇게 내리면 정답이 이어서 보인다. 계속 내리고 여기까지 쭉 내리면 정답이 다 나온다.대소문자 잘 구분해서 모두 연결한 문자열을 입력하면 Correct가 출력된다. 플래그를 획득했다!
-
Dreamhack - rev-basic-0wargame/Dreamhack 2024. 5. 21. 21:20
[Beginner - rev-basic-0 - reversing] 입력값 검증해서 correct가 출력되는 입력값이 플래그값이다. x64dbg로 문제파일 안에 들어있던 실행 파일 열어보면 위와 같은 화면이 나온다.f9 두번 누른 뒤 f7로 한단계씩 실행하다가 입력하라고 뜨면 일단 아무거나 1004를 입력한다.그러다가 위 사진처럼 답으로 추정되는 게 바로 나온다. 처음부터 다시 실행시켜서 정답으로 추정되는 문자열을 입력하고 살펴본다.정확히 일치하는지 입력받은 문자열의 문자 하나하나를 다 비교하는 것을 볼 수 있다. 검증 후 출력할 Correct와 Wrong 문자열도 보인다. Correct가 실행 창에 제대로 떴는지도 확인해보자. 플래그를 획득했다!
-
Dreamhack - ROT128wargame/Dreamhack 2024. 5. 14. 21:54
[Beginner - ROT128 - crypto] 문제 파일을 다운로드 받으면 rot128.py와 encfile이 들어있다. 제공된 코드는 위와 같이 flag.png를 암호화하여 encfile로 저장하는 내용을 담고 있다.따라서 주어진 encfile을 복호화해 flag 파일 내용을 알아낸 뒤, flag.png에서 플래그를 획득하면 되는 문제다. 위와 같이 encfile을 복호화한 이진 데이터를 flag.png에 쓰는 코드를 작성하면 된다.코드를 실행하면 flag.png가 생성되고 열어보면 플래그값이 나와 있다. 플래그를 획득했다!
-
-
Dreamhack - Enc-JPGwargame/Dreamhack 2024. 5. 8. 00:09
[LEVEL 3 - Enc - JPG - reversing, forensics] 문제 파일을 다운로드 받으면 Enc라는 파일 하나와 flag.jpg 파일 하나가 있다. 파일 이름은 flag.jpg인데 HxD로 열어보면 손상된 걸 알 수 있다. 파일을 HxD로 열어보면 MZ을 보아 실행파일인 걸로 추측할 수 있다.따라서 .exe로 확장자를 변환해준다. 이렇게 실행파일로 바뀌고, flag.jpg이 조금 보이게 되었다. 그럼 이렇게 다시 jpg 헤더 시그니처로 바뀐 걸 볼 수 있다. jpg의 푸터 시그니처인 FF D9를 검색하면 두 개가 나오는데 첫 번째꺼를 지우고 저장한다. 그러면 위와 같이 첫 번째 플래그값을 얻을 수 있다. 두 번째로 있던 푸터 시그니처..
-
Dreamhack - video_in_videowargame/Dreamhack 2024. 5. 7. 23:54
[LEVEL 3 - video_in_video - forensics] 문제 파일을 다운로드 받으면 video_in_video.jpg 파일이 들어있다.문제 이름을 통해 일단 비디오 안에 비디오가 있을 것으로 추정된다. 이 파일을 HxD로 열어보면 jpg 파일의 헤더 시그니처를 확인할 수 있고, 푸터 시그니처도 확인할 수 있다.그런데 푸터 뒤에 수상해 보이는 값들이 많이 있다. 푸터 뒤부터를 새로운 mp4파일로 만들어 저장한다. 그러면 위와 같이 어떤 동영상 하나를 볼 수 있는데 플래그가 나오진 않는다.여기서 mp4 파일 구조에 대한 공부를 먼저 하고 나서 문제를 다시 풀었다. 박스(box)란?파일의 기본 단위로 크기, 타입, 데이터를 가짐크기는 크기와 타입 필드를 포함한..
-
Dreamhack - BMP Recoverywargame/Dreamhack 2024. 5. 1. 23:45
[LEVEL 2 - BMP Recovery - misc, forensics] 문제 설명에 BMP 파일의 중요한 값들을 지워버려서 flag.bmp를 올바르게 복구해야 한다고 되어있다.문제 파일을 다운로드 받으면 chal.py 파일과 flag.bmp.broken 파일이 들어있다. 일단 flag.bmp.broken 복제본을 생성해놓고 복제본으로 문제를 풀었다. 위 캡처 사진은 문제파일에 있던 chal.py 파일이다. 커서가 하나 전으로 되어있어서 파일의 맨 끝 오프셋은 DA58F6이다. 초기 파일의 모습이다. 18 00 부분 오프셋 빼고 나머지는 다 날아간듯하다.이 부분에서 알 수 있는 건 1픽셀당 24비트(3바이트)로 표현된다는 것이다. bmp 파일의 헤더 시그니처(BM)인 42..
-
Dreamhack - sleepingsharkwargame/Dreamhack 2024. 5. 1. 23:17
[LEVEL 2 - sleepingshark - forensics] 문제 설명은 Do shark sleep? 가 끝이다. 문제 파일 다운로드 받으면 dump.pcap 파일이 들어있다.wireshark로 열어주면 아래와 같이 나온다. SELECT문 있는 요청 부분을 눌러보면 위와 같이 나오는데, 이 문자열을 복사해서 dreamhack cyberchef에서 Url decode를 시켜보면 flag값이 맞으면 3초동안 잠드는 것으로 예측할 수 있다. (즉, Time Based SQL Injection을 하는 페이로드임) 양이 너무 많아서 노가다로 푸는 것은 힘들 것 같았다. 그래서 일단 첫 번째로 3초 잠드는 구간을 찾아본다.위 캡처 사진에서 619번과 623번 패킷의 time을 보면 4.7초대에..