$ Wargame $/$ Suninatas $
-
[System] Level 25 [555pt]$ Wargame $/$ Suninatas $ 2019. 9. 17. 16:43
make를 눌러보니 LAST NUMBER 의 값이 7439가 나왔습니다. 이번 파일도 확장자가 없기 때문에 HxD를 이용해서 헤더 시그니처를 확인해 보겠습니다. ZIP 파일이면서 class.dex 파일이 있습니다. 24번 문제와 매우 비슷한 문제입니다. dex파일을 jar파일로 변환 하는 작업을 한뒤 jd_gui 로 디컴파일 해보겠습니다. 이제 코드를 한번 살펴 보겠습니다. 이번에는 4개의 파라미터를 받습니다. id, pw 는 자신의 suninatas id,pw일 테고 Name과 Number이 있습니다. Name은 SuNiNaTaS 인것 같습니다. Number은 값이 없는데 아까 맨처음에 랜덤으로 얻은 숫자인 7439를 전송해 주면 될것 같습니다.
-
[System] Level 24 [333pt]$ Wargame $/$ Suninatas $ 2019. 9. 17. 15:40
문제 파일에 확장자가 없어서 HxD를 이용해서 한번 확인해 보겠습니다. ZIP 파일입니다. 확장자를 바꾸고 압축을 풀어보겠습니다. .dex 파일이 눈에 보입니다. dex 파일은 javaVM 시스템에서 실행이 가능한 코드라고 합니다. dex 파일은 툴을 이용해서 jar 파일로 변환이 가능하다고 하는데요 .jar 파일로 변환을 하면 디컴파일러로 소스코드를 확인 할 수 있습니다.! dex2jar 라는 프로그램을 다운로드 해보겠습니다. https://sourceforge.net/projects/dex2jar/ jar 파일로 변환 성공! jd_gui라는 툴로 jar 디컴파일 해줍니다. 해당 소스코드를 확인해 보면 다음과 같습니다. id와 pw를 서버로 전송하고 key라는 파라미터의 값이 WE1C0mEToandr0..
-
[System] Level 20 [233pt]$ Wargame $/$ Suninatas $ 2019. 9. 17. 14:38
문제를 열어보겠습니다. 해당 파일은 ELF 파일입니다. 그래서 일단 Ghidra를 이용해서 한번 디컴파일 해보겠습니다. main 코드를 확인해 보면 일단 if문을 확인해 보겠습니다. main의 if문을 보면 param_2가 ./suninatas 이여야 합니다. 이는 파일명이 suninatas 이어야 합니다. 그리고 아래의 루프에서도 중요한 역할을 합니다. 12크기 만큼 입력을 받고 base64decode함수가 있는 것으로 보아 입력을 할때 base64encode로 넣어야 할것 같습니다. decode한 데이터의 길이가 12이하여야 auth함수에 들어갈 수 있습니다. auth 함수를 확인해 보겠습니다. 파라미터로 디코드된 입력값이 들어갔습니다. calc_md5함수를 통해서 나온 hash 값이 strcmp를 ..
-
[Reversing] Level 11 [198pt]$ Wargame $/$ Suninatas $ 2019. 9. 17. 14:36
문제를 PEID로 열어보겠습니다. 딱히 특별한 것은 보이지 않습니다. 실행해 보면 다음과 같습니다. 값을 입력 해야하지만 입력을 해도 아무런 행위가 없습니다. 정확한 값을 입력해야 확인 가능한 문제 인것 같습니다. ollydbg를 이용해서 분석을 해보겠습니다. 프로그램에 사용된 string을 확인해서 성공 문자열로 보이는 Congratulation! 문자열을 찾아서 가보겠습니다. 해당 문자열을 더블클릭해서 확인해 보면 main 루프를 확인 할 수 있는데 004502A8에 BP를 걸고 F9로 이동하면서 1234 라는 값을 입력해 보겠습니다. 입력값인 1234와 2VB6H1XS0F 비교하는 구문이 CALL로 호출을 하는것 같습니다. 2VB6H1XS0F를 입력해 보겠습니다.
-
[Reversing] Level 10 [150pt]$ Wargame $/$ Suninatas $ 2019. 9. 17. 14:34
문제를 열어보면 다음과 같습니다. 아무런 값을 입력해 보면 다음과 같은 메시지 박스를 출력합니다. 이제 올리디버거 로 한번 실행해 보겠습니다. 실행이 안되네요!.. PEID 로 한번 어떤 파일인지 확인해 보겠습니다. .NET 파일이네요 DotPeek이라는 툴을 이용해서 한번 디컴파일 해보겠습니다. WindowsFormApplication3\WindowsFormApplication1\Form1의 코드를 확인해 보면 위의 코드를 확인할 수 있습니다. button1_Click( ) 메소드를 확인해 보면 if 문이 있는데 입력 칸에 str 변수의 데이터와 같아야 클리어 값이 나오는것 같습니다. 하지만 text의 문자열을 확인해 보면 Authkey가 있습니다. 직접 입력을 해보면 아래와 같습니다.
-
[Reversing] level 9 [144pt]$ Wargame $/$ Suninatas $ 2019. 8. 19. 14:24
문제를 다운 받으려 했으나 악성코드에 대한 의심으로 브라우저에서 차단을 미리 받아 버리는 상태이다. 필자는 wget를 이용해서 다운 받아 보겠습니다. 이제 문제를 풀어보겠습니다. 먼저 프로그램을 실행시켜 보도록 해봅시다. 이런 UI의 프로그램이 있는데 Serial 값을 넣는 문제 인것 같스빈다. 한번 ollydbg를 이용해서 열어보겠습니다. 우리 눈에 보이는 문자열을 이용해서 main으로 접근 할 것이므로 "Suninatas"를 찾아보겠습니다. 위로 좀만 올라가서 PUSH EBP 자리에 breakpoint를 걸고 실행 해보겠습니다. 입력 값으로는 1234를 넣어 보겠습니다. 문자열 검색 할때 부터 눈에 거슬렸던 6자리의 숫자.. 매우 Serial 스러워서 입력을 해보았습니다. 일단... 시리얼은 맞습니다..