본문 바로가기

CTF

(51)
[Hitb-xctf 2018] multicheck 12345678910data = [0x8D, 0x8F, 0x93, 0xE6, 0xDD, 0xDD, 0xDA, 0xF0, 0x74, 0xF2, 0x03, 0x6D, 0xC0, 0xD3, 0x07, 0x29, 0x9A, 0x97, 0xB7, 0x3D, 0xD6, 0x0B, 0xBC, 0x53, 0xF4, 0x89, 0x8E, 0x08, 0x21, 0x52, 0xE9, 0x42, 0x35, 0x0D, 0x0B, 0x0C, 0x7D, 0x0E, 0x0F, 0x10, 0x69, 0x44, 0x27, 0x06, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x81, 0x18, 0x1F, 0x20, 0x3D, 0x22, 0x23, 0x24, 0x55, 0x26, 0x27, 0..
CODEGATE 2018 본선 후기 CODEGATE 2018 본선 후기 입니다~!이번에 처음이자 마지막으로 코드게이트 2018 주니어부 본선에 참가하게 되었습니다.사실 코드게이트 같은 경우에는 이번에 처음으로 본선에 올라가게 되었는데 굉장히 기대되고 떨리는 마음으로 대회를 준비했던 것 같습니다.대회장은 코엑스 그랜드볼룸에서 진행되었는데 30분 전에 미리 도착해서 아는분들과 인사를 나누고 대회시작을 기다렸습니다.사실 대회 시작이 얼마안남은 상태에서 갑작스럽게 기자님한테 인터뷰를 당해서 당황했지만 정신잡고 문제를 풀었습니다. ㅠㅠ대회가 시작하고 처음에 문제 3개가 나왔는데 아마 pwn, crypto, misc 문제가 나왔었습니다.리버싱이 없어서 조금 슬펐지만 misc 문제 보던중에 갑자기 문제가 추가되서 가장 쉬웠던 Flower Dance 문..
[Codegate final 2018] Shall We Dance 플래그는 소문자이며 공백은 없다고 쓰여있습니다. 그리고 프로그램을 실행시킬땐 이어폰이나 헤드셋을 착용해달라고 하네요.노래가 나오는 실행파일인 것 같습니다~! 메뉴는 총 3개로1. Yes. Let's dance ~2. I'm sorry. I have an another partner:(3. I want to go home. -_-; 1번을 입력하면 4종류의 음악을 선택할 수 있습니다. 하지만 음악중 4번 tango를 입력하였을땐 파일이 깨졌다고 나오면서 노래가 나오지 않습니다.뭔가 tango.wav 파일을 고친다면 flag를 얻을 수 있을거라고 생각하고 ollydbg 켜서 분석하였습니다. string이 검색되므로 해당 함수에 쉽게 찾아갈 수 있습니다.여기서 좀 더 내려가보면 이러한 코드가 보이는데 [3D7..
[Codegate final 2018] G0Crack 코드게이트 본선 대회장에서 가장 먼저 풀었던 첫번째 리버싱 문제 입니다 ㅎㅎ 제목으로 볼 수 있듯이 문제는 go 언어로 만들어진 바이너리 파일 입니다. IDA로 보면 일단 주요 함수는 main과, checkinput, checkValid, printFlag, error, init 등 이 있습니다. 먼저 main 에서 메뉴창을 출력하고 입력을 받은 후에 바로 checkInput 함수를 호출 함으로써 입력값을 확인하게 됩니다. 위 코드는 checkInput 함수의 모습인데 &1 연산을 통해 입력 길이가 홀수 인지 확인합니다.후에 표현할 수 있는 acsii table 33~126 (띄어쓰기 제외) 값인지 확인한 뒤에 checkValid함수을 호출해 유효한 입력값인지 확인 합니다. 이제 checkValid 함수..
[Codegate final 2018] betting 전형적인 버퍼오버플로우 문제입니다. 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394int __cdecl main(int argc, const char **argv, const char **envp){ unsigned int v3; // eax unsigned int v4; // eax unsigned int v6; // [rsp+4h] [rbp-6Ch] int v7; // [rsp+8h] [rbp-68h] unsigned int v8;..
[Codegate 2017] Goversing Go 언어로 만들어진 바이너리다.사용자 함수를보면 main_main, main_print_menu, main_Login, main_id_check, main_pw_check, main_id_pw_check, main_Print_FLAG, main_init 등이 있다.여기서 중요한 부분은 Print FLAG, 와 main_id_pw_check 이다.login을 하고 print flag를 선택하면 id_pw를 check 한 후에 id 와 pw 루틴이 해당 함수와 일치하면 플래그를 뿜는다.최근에 hexray를 자제하고 어셈이랑 좀 익숙해지고 친숙해지려고 어셈으로만 분석을 시작했다.사실 goversing 자체 바이너리는 go언어로 만들어진 바이너리가 그런지 hexray가 안되서 어차피 어셈으로 분석해야한다 ㅋㅋ..
[angstromctf 2017] Product Key [angstromctf 2017] Product Key - Re 200pt문제 내용을 보면 이름이 Artemis Tosini 일때와 이메일이 artemis.tosini@example.com 일때의 key를 구하라고 한다. [source]12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412..
[White Hacker League 2017] Medic 1234567891011121314151617181920212223242526272829303132333435int __cdecl main(int argc, const char **argv, const char **envp){ __int64 v3; // rax@1 const char *v4; // rax@1 __int64 v5; // rdx@4 __int64 v6; // rax@5 __int64 v7; // rax@6 int result; // eax@7 __int64 v9; // rdx@7 int i; // [sp+Ch] [bp-84h]@1 char v11; // [sp+10h] [bp-80h]@1 __int64 v12; // [sp+78h] [bp-18h]@1 v12 = *MK_FP(__FS__, 4..