Season 1/워게임
-
문제풀이 바로 시작해보겠습니다. 1. 문제 Local File Inclusion(LFI) 주제네요. 2. 문제풀이 문제 접근 시 카테고리들이 존재하며, 아래 파일들이 존재하네요 connected as : guest | admin을 보아 admin을 접근해야 할 것만 같습니다. 힌트 또한 어드민 영역에 접근하라고 하네요. admin에 접근하니 ID/PW를 요구하네요. 여기에 접근할 수 있으면 문제가 해결될 것 같습니다. 먼저 LFI 답게 파일 경로 위에 무엇이 더 있는지 확인해 보겠습니다. 해당 파일 상위경로로 이동하니 카테고리들이 존재하였습니다. 한번 더 경로를 높혀보겠습니다. admin 파일이 존재하네요.... 파일에 접근해보겠습니다. admin 파일에 접근하니 index.php 파일이 존재하며 ind..
[Root-Me]/Web Server/Local File Inclusion문제풀이 바로 시작해보겠습니다. 1. 문제 Local File Inclusion(LFI) 주제네요. 2. 문제풀이 문제 접근 시 카테고리들이 존재하며, 아래 파일들이 존재하네요 connected as : guest | admin을 보아 admin을 접근해야 할 것만 같습니다. 힌트 또한 어드민 영역에 접근하라고 하네요. admin에 접근하니 ID/PW를 요구하네요. 여기에 접근할 수 있으면 문제가 해결될 것 같습니다. 먼저 LFI 답게 파일 경로 위에 무엇이 더 있는지 확인해 보겠습니다. 해당 파일 상위경로로 이동하니 카테고리들이 존재하였습니다. 한번 더 경로를 높혀보겠습니다. admin 파일이 존재하네요.... 파일에 접근해보겠습니다. admin 파일에 접근하니 index.php 파일이 존재하며 ind..
2022.01.17 -
한동안 휴식기를 가지고 왔는데... 1월도 됐으니 열심히 다시 달려보도록 하겠습니다~ 바로 문제풀이 시작하겠습니다. 1. 문제 문제 접근 시 여러 가지 카테고리가 보이며 주제는 파일업로드-이중 확장자로 보이네요. 2. 문제풀이 문제 풀기 전 어떠한 업로드의 문제인지 확인하기 위해 힌트를 보았습니다. PHP 코드를 통해 최상위 .password 파일 안에 패스워드를 가져오라는 것 같습니다. 여러 가지 카테고리가 있지만 주제에 맞게 바로 Upload 부분으로 들어와 업로드를 시도해 보겠습니다. 업로드 전 최상위 경로의 .passwd 파일을 찾기 위해 php 웹쉘을 작성해보겠습니다. 기본적으로 명령어를 사용할 수 있는 코드를 작성하였습니다. 간단하게 메모장을 통해 작성 후 확장자를 .php 로 붙여 저장해 주..
[Root-Me]/Web Server/File upload - Double extensions한동안 휴식기를 가지고 왔는데... 1월도 됐으니 열심히 다시 달려보도록 하겠습니다~ 바로 문제풀이 시작하겠습니다. 1. 문제 문제 접근 시 여러 가지 카테고리가 보이며 주제는 파일업로드-이중 확장자로 보이네요. 2. 문제풀이 문제 풀기 전 어떠한 업로드의 문제인지 확인하기 위해 힌트를 보았습니다. PHP 코드를 통해 최상위 .password 파일 안에 패스워드를 가져오라는 것 같습니다. 여러 가지 카테고리가 있지만 주제에 맞게 바로 Upload 부분으로 들어와 업로드를 시도해 보겠습니다. 업로드 전 최상위 경로의 .passwd 파일을 찾기 위해 php 웹쉘을 작성해보겠습니다. 기본적으로 명령어를 사용할 수 있는 코드를 작성하였습니다. 간단하게 메모장을 통해 작성 후 확장자를 .php 로 붙여 저장해 주..
2022.01.14 -
문제 정보 컴퓨터 C 드라이브의 이름이 CodeEngn 일 경우, 시리얼이 생성될 때 CodeEngn은 어떤 것으로 변경되는가 풀이 힌트 2-1. getvolumeinformationA 문제 풀이 더보기 3-1. 잘못된 시리얼 키를 입력했을 때, 출력되는 에러 "The serial you entered is not correct!" 문자열을 확인한다. 3-2. 해당 에러 메시지를 출력하는 주소를 확인한다. 3-3. 위에서 확인한 주소를 따라가면 [call ] 함수 리턴 값으로 참/거짓을 판별하는 것을 볼 수 있다. 3-4. 해당 함수 호출 전 BP를 걸고 프로그램을 실행한다. 3-5. 시리얼 키로 test를 입력하였고 함수 호출 전 "test", "L2C-57816784-ABEX" 2개의 문자열이 매개변..
[CodeEngn] Basic RCE L07 문제풀이문제 정보 컴퓨터 C 드라이브의 이름이 CodeEngn 일 경우, 시리얼이 생성될 때 CodeEngn은 어떤 것으로 변경되는가 풀이 힌트 2-1. getvolumeinformationA 문제 풀이 더보기 3-1. 잘못된 시리얼 키를 입력했을 때, 출력되는 에러 "The serial you entered is not correct!" 문자열을 확인한다. 3-2. 해당 에러 메시지를 출력하는 주소를 확인한다. 3-3. 위에서 확인한 주소를 따라가면 [call ] 함수 리턴 값으로 참/거짓을 판별하는 것을 볼 수 있다. 3-4. 해당 함수 호출 전 BP를 걸고 프로그램을 실행한다. 3-5. 시리얼 키로 test를 입력하였고 함수 호출 전 "test", "L2C-57816784-ABEX" 2개의 문자열이 매개변..
2021.12.31 -
문제 정보 Unpack을 한 후 Serial을 찾으시오. 정답인증은 OEP + Serial Ex) 004000000PASSWORD 풀이 힌트 2-1. Packing 2-2. OEP 문제 풀이 더보기 3-1. PEiD를 통해 UPX로 패킹된 것을 확인하고, UPX 실행파일을 통해 언패킹을 수행한다. 3-2. 문자열 참조를 통해 "Wrong Serial!!!" 에러 메시지를 출력하는 주소를 확인한다. 3-3. 주소를 따라가보니 [00401073] 주소에서 호출된 함수 리턴 값으로 참/거짓이 판단되는 것을 확인할 수 있고, 함수 매개변수로 "AD46DFS547"가 전달된다. 3-4. 강력한 직감에 의지하여 "AD46DFS547" 문자열을 시리얼 키로 입력하니 참을 나타내는 문자열이 출력됐다. 3-5. OEP는..
[CodeEngn] Basic RCE L06 문제풀이문제 정보 Unpack을 한 후 Serial을 찾으시오. 정답인증은 OEP + Serial Ex) 004000000PASSWORD 풀이 힌트 2-1. Packing 2-2. OEP 문제 풀이 더보기 3-1. PEiD를 통해 UPX로 패킹된 것을 확인하고, UPX 실행파일을 통해 언패킹을 수행한다. 3-2. 문자열 참조를 통해 "Wrong Serial!!!" 에러 메시지를 출력하는 주소를 확인한다. 3-3. 주소를 따라가보니 [00401073] 주소에서 호출된 함수 리턴 값으로 참/거짓이 판단되는 것을 확인할 수 있고, 함수 매개변수로 "AD46DFS547"가 전달된다. 3-4. 강력한 직감에 의지하여 "AD46DFS547" 문자열을 시리얼 키로 입력하니 참을 나타내는 문자열이 출력됐다. 3-5. OEP는..
2021.12.30 -
문제 정보 이 프로그램의 등록키는 무엇인가 풀이 힌트 2-1. Packing 2-2. UPX 문제 풀이 더보기 3-1. 잘못된 키를 입력하면 "Wrong Serial, try again!" 이라는 문구를 출력하는 프로그램이다. 3-2. "Wrong Serial, try again!" 문자열의 주소를 확인한다. ※ 프로그램 실행해야만 해당 문자열이 검색된다. 여기에서 패킹을 의심했어야 한다. 3-3. 에러 문구를 출력하는 주소를 따라가면 [call 05.403B2C] 함수 호출 후 결과 메시지를 출력하는 것을 알 수 있다. 3-4. [call 05.403B2C] 함수의 호출 전/후로 BP를 걸어서 확인해보자 3-5. BP를 걸고 프로그램을 재실행해보니 별다른 변화가 없고 BP가 비활성화 되어있다. 3-6...
[CodeEngn] Basic RCE L05 문제풀이문제 정보 이 프로그램의 등록키는 무엇인가 풀이 힌트 2-1. Packing 2-2. UPX 문제 풀이 더보기 3-1. 잘못된 키를 입력하면 "Wrong Serial, try again!" 이라는 문구를 출력하는 프로그램이다. 3-2. "Wrong Serial, try again!" 문자열의 주소를 확인한다. ※ 프로그램 실행해야만 해당 문자열이 검색된다. 여기에서 패킹을 의심했어야 한다. 3-3. 에러 문구를 출력하는 주소를 따라가면 [call 05.403B2C] 함수 호출 후 결과 메시지를 출력하는 것을 알 수 있다. 3-4. [call 05.403B2C] 함수의 호출 전/후로 BP를 걸어서 확인해보자 3-5. BP를 걸고 프로그램을 재실행해보니 별다른 변화가 없고 BP가 비활성화 되어있다. 3-6...
2021.12.30 -
문제 정보 이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가 풀이 힌트 2-1. IsDebuggerPresent 문제 풀이 더보기 3-1. 디버거로 프로그램을 실행하면 "디버깅 당함" 이라는 문구를 출력한다. 3-2. 문자열 참조에서도 별다른 수확이 없어 F8로 한줄씩 실행 노가다 후 디버깅 함수를 체크하는 구간을 찾았다. ※ 문자열 참조가 아닌 모듈참조를 통해서도 확인할 수 있었다, 3-3. test eax,eax 구문에서 eax가 0이면 [04.408190] 함수를 실행하고, 0이 아니면 [04.408190] 함수를 실행하게 되는데 별다른 조작없이 eax가 1인 현재 상황에서는 똑같이 "디버깅 당함" 문구를 출력할 것으로 예상되기 때문에 eax를 0..
[CodeEngn] Basic RCE L04 문제풀이문제 정보 이 프로그램은 디버거 프로그램을 탐지하는 기능을 갖고 있다. 디버거를 탐지하는 함수의 이름은 무엇인가 풀이 힌트 2-1. IsDebuggerPresent 문제 풀이 더보기 3-1. 디버거로 프로그램을 실행하면 "디버깅 당함" 이라는 문구를 출력한다. 3-2. 문자열 참조에서도 별다른 수확이 없어 F8로 한줄씩 실행 노가다 후 디버깅 함수를 체크하는 구간을 찾았다. ※ 문자열 참조가 아닌 모듈참조를 통해서도 확인할 수 있었다, 3-3. test eax,eax 구문에서 eax가 0이면 [04.408190] 함수를 실행하고, 0이 아니면 [04.408190] 함수를 실행하게 되는데 별다른 조작없이 eax가 1인 현재 상황에서는 똑같이 "디버깅 당함" 문구를 출력할 것으로 예상되기 때문에 eax를 0..
2021.12.29