반응형

CTF 362

[Tenable CTF] The only tool you'll ever need - 리버싱 / Strings

아주아주 쉬운 리버싱 문제 사실 너무 쉬워서 리버싱이라 부르기도 좀 그렇다. 문제 풀이수가 얼마나 쉬웠는지 증명해주고 있다. 문제에서 주어지는 것은 a.out 파일이다. 문제 설명을 보면 리버싱 문제를 풀기위한 가장 파워풀한 도구가 뭔지 아냐고 물어보는데 여러 후보들이 있지만 이 문제의 경우 메모장도 그중 하나일것 같다. 메모장으로 a.out 파일을 열어서 스크롤을 조금만 내려보면 플래그가 보인다.. 플래그의 내용에 strings 가 있는걸로 보아 문제 출제자의 의도는 strings 도구를 사용하라는 것인듯 하다. 리눅스 환경에서 strings 명령어를 이용해 a.out 파일을 확인해보면 똑같이 플래그를 찾을 수 있다.

CTF/리버싱 2023.03.22

[Tenable CTF] Quit messing with my flags - 암호학 / MD5

풀이수로 알 수 있는것처럼 아주아주 쉬운 문제이다. flag{161EBD7D45089B3446EE4E0D86DBCF92} 문제 설명을 보면 위처럼 플래그 처럼 보이는 것이 주어져 있다. 물론 이게 진짜 플래그는 아니다. {} 중괄호 사이에 있는 문자열들을 보면 총 32 글자인것을 알 수 있다. 이렇게 글자수가 32이고 0~9, A~F 까지의 문자열로 이루어져있다면 해시 알고리즘 중 하나인 MD5 를 의심해봐야한다. https://www.md5online.org/md5-decrypt.html MD5 Online | Free MD5 Decryption, MD5 Hash Decoder www.md5online.org 구글에 검색해보면 MD5를 Decrypt 할 수 있는 온라인 사이트가 아주 많이 나온다. 위 ..

CTF/암호학 2023.03.20

[Tenable CTF] One Byte at a Time - 포너블 / XOR

간단한 포너블 문제 풀이수가 401 이나 되는걸 보니 아주 쉬웠나보다. 별다른 설명없이 원격으로 접속할 수 있는 주소만 주어진다. nc 를 이용해 원격접속을 해보면 [flag]> 라는 프롬포터가 나오면서 사용자의 입력을 받는다. 그럼 사용자의 입력값이 플래그와 어느정도 일치하는지 검증한 후, 입력한 부분까지 일치한다면 플래그의 그 다음글자를 어떤 IPv4 주소의 랜덤한 부분과 XOR 한 결과를 알려준다. 일단 플래그 포맷이 flag{} 라는것을 알고 있기 때문에 맨 먼저 f 부터 입력해봤다. 여러번 반복해서 입력해본 결과 f 를 입력했을때 결과로 나오는 값은 0x1b, 0x6e, 0x7c 세 가지였다. 이 세 값이 f 다음글자인 l 과 XOR을 했을때 나오는 값은 0x77 0x02 0x10 세 가지이다...

CTF/포너블 2023.03.18

[Tenable CTF] Not JSON - 암호학 / Base64 / Python

어렵진 않지만 조금 고민했던 문제이다. 문제에서 주어지는 것은 Base64 로 인코딩된 듯한 긴 문자열이다. 일단 바로 CyberChef(https://gchq.github.io/CyberChef/) 에서 Base64 디코딩을 해보았다. 뭔가 디코딩이 되긴 되는거 같은데.. 깔끔하지 않은 느낌이었다. 좀더 자세히 보기 위해 To Hex 레시피를 추가해 16진수값으로 한번 살펴보았다. notepad++ 에 옮겨적고 천천히 분석해봤더니 패턴이 보였다. 빨간 화살표가 표시된 1....2..... 부분부터 16진수 값에 특정한 패턴이 보였다. 맨앞에 있는 30, 31, 32, 33 ... 이 숫자들은 ASCII 코드로 0,1,2,3... 을 의미하는데 이 숫자들은 플래그의 INDEX 값이다. 그리고 세번째 열(..

CTF/암호학 2023.03.16

[Tenable CTF] Forwards from Grandma - 포렌식 / 모스부호

이메일, 모스부호와 관련된 포렌식 문제 할머니가 이메일을 보내셨는데, 뭔가 숨겨진 메세지가 있는것 같다고 한다. 주어진 tmp.eml 파일은 Outlook 을 이용해서 열어볼 수 있다. Outlook 을 이용해서 eml 파일을 열어보면 할머니가 보내신 이메일 하나가 덩그러니 있다. ffg.jpg 라는 파일을 첨부해서 특별한 내용 없이 메일을 보내셨는데, 뭔가 이상항 부분이 눈에 띈다. 할머니 메일 주소 밑에 FWD: RE: 가 규칙없이 반복적으로 나타나고 있는 모습이다. FWD: 와 RE: 가 나오는 부분이 띄어쓰기로 구분이 되어있어서 보기 쉽게 엔터를 쳐서 살펴보았다. 중간중간에 { 와 } 기호가 보이는 것으로 보아 이 부분이 플래그인게 확실하다. CyberChef(https://gchq.github...

CTF/포렌식 2023.03.14

[Tenable CTF] Esoteric / Find the encoding - MISC

너무 간단한 문제 두 개라 같이 Write up 을 작성해본다. 예전에 풀이했던 Ezoterik(https://hackingstudypad.tistory.com/176) 문제를 둘로 쪼개놓은 느낌이다. 첫번째로 Esoteric 문제이다. 뭔가 알수없는 암호문 같은게 주어지는데 사실 이건 프로그래밍 언어다. 이렇게 + [ - > < . 기호로 이루어진 언어는 BrainFxxx 이라고 한다. (x로 적었으나 모두가 생각하는 그 단어가 맞다.) 위키피디아를 찾아보면 실제 있는 언어인걸 알 수 있다. 당연히 실제로는 잘 사용되지 않는 언어이고, 이름처럼 그냥 장난처럼 만들어진 언어이다. 구글에 검색하면 온라인 인터프리터를 쉽게 찾을 수 있고 문제에서 주어진 값을 그대로 복사해서 붙혀넣은 뒤 Execute 버튼을..

CTF/MISC 2023.03.13

[Tenable CTF] H4ck3R_m4n exposed! 3 - 포렌식 / Wireshark

드디어 H4ck3R_m4n exposed! 의 마지막 문제이다. 이번 문제는 지난번과 이어진다. (https://hackingstudypad.tistory.com/440) 지난 문제에서 주어진 hack3rm4n_exp0sed.pcapng 파일을 이용해 dataz 와 pickle_nick.png 두 파일을 추출했었다. pickle_nick.png 가 두번째 플래그였고, 나머지 dataz 파일을 이용해 세번째 플래그를 찾아야 한다. notepad++ 을 이용해 dataz 파일을 열어보니 뭔가 16진수로 된 데이터들이 들어있었다. CyberChef(https://gchq.github.io/CyberChef)에서 From Hex 레시피로 확인해보니 Base64로 인코딩된 데이터가 보였다. From Base64 ..

CTF/포렌식 2023.03.11

[Tenable CTF] H4ck3R_m4n exposed! 2 - 포렌식 / Wireshark

쉬운 난이도의 네트워크 패킷 포렌식 문제 파일 하나로 세 개의 문제를 푸는 방식이다. 문제에서 주어지는것은 hack3rm4n_exp0sed.pcapng 파일이다. pcapng 파일은 Wireshark 도구를 이용해 열어볼 수 있다. 열어보면 위와 같은 화면이 나온다. 조금 내리다 보면 98번 패킷에서 Welcome to Pure-FTPd 라는 문구가 보인다. FTP 프로토콜을 이용해 어떤 파일같은걸 전송하려는듯 하다. 조금 내려가다보면 144번째 패킷부터 supersecure.7z 파일을 전송하고 있는것이 보인다. 해당 패킷을 우클릭 - Follow - TCP Stream 을 눌러서 확인해보면 이렇게 전송되는 Raw 데이터를 확인할 수 있다. 아래쪽에서 Show data as 를 Raw 로 설정해준 뒤 ..

CTF/포렌식 2023.03.09

[Tenable CTF] H4ck3R_m4n exposed! 1 - 포렌식 / Wireshark

쉬운 난이도의 네트워크 패킷 포렌식 문제 파일 하나로 세 개의 문제를 푸는 방식이다. 문제에서 주어지는것은 hack3rm4n_exp0sed.pcapng 파일이다. pcapng 파일은 Wireshark 도구를 이용해 열어볼 수 있다. 열어보면 위와 같은 화면이 나온다. 조금 내리다 보면 98번 패킷에서 Welcome to Pure-FTPd 라는 문구가 보인다. FTP 프로토콜을 이용해 어떤 파일같은걸 전송하려는듯 하다. 조금 더 내려서 313, 314 번째 패킷을 보면 FTP-DATA 로 butter.jpg 파일을 전송하는 것이 보인다. 해당 패킷을 우클릭 - Follow - TCP Stream 을 눌러서 확인해보면 이렇게 전송되는 Raw 데이터를 확인할 수 있다. 파일 앞쪽에 JFIF 라는 문구가 보이는..

CTF/포렌식 2023.03.07

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

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

CTF/리버싱 2023.03.05
반응형