InfoSec/Wargame

InfoSec/Wargame

[워게임] Check Return Value 풀이

1. 문제 요약바이너리가 레지스터에 반환하는 값을 디버깅으로 찾는 문제이다.출력문이라면 디버깅을 하지 않고도 문자열만을 검색하여찾을 수 있지만,바이너리가 해당 문자열을 레지스터에다가 반환하기 때문에 디버깅 사용은 필수이다.2. 문제 풀이GDB 디버거 연결우선 기본적으로 바이너리를 디버거로 열어준다.이렇게 열어줘야 정상적으로 열린다. (나는 처음에 모르고 위에 Tool Chest에 있는 Debugger를 눌렀더니 계속 빈 프로젝트 파일만 오픈이 되었다.)그 후에 디버거 메뉴에서 GDB LOCALLY IN-VM을 열어 디버거를 우분투의 GDB와 연결시켜준다.그러고 일단 starti 메뉴를 체크하고 실행을 시켜준다. 여기까지가 항상 기본 작업이다.브레이크 걸기가장 먼저 해주어야 할 것은, 동기화이다.Ghidr..

InfoSec/Wargame

[워게임] Check Function Argument 풀이

1. 문제 이해 해당 프로그램을 실행시켰을 때 플래그가 출력되지 않고 숨겨져 있음을 알 수 있다. 그래서 디버거를 사용하여 출력 함수 다음으로 실행되는 함수가 어떤 데이터를 갖고 있는지 알아내야 한다. 2. 문자열 검색 Below function takes the flag as an argument :) 는 그냥 봐도 20바이트는 넘기 때문에 문자열 검색의 minimum 값을 20으로 설정하고 찾아본다. 3. 문자열 참조 그러면 우리가 찾고자 했던 문자열의 위치로 이동할 수 있고, 문자열이 쓰여 있는 곳이 곧 메인 함수이기 때문에 우리는 문자열 참조를 하여 메인 함수의 위치로 이동할 수 있다. 4. 디버깅 디컴파일된 메인함수를 보면 출력 함수 밑 부분에 FUN_004015e2 라는 함수가 어떤 데이터를 ..

InfoSec/Wargame

[워게임] Simple Patch Me 풀이

1. 문제 이해 우선 simple_patch_me 파일을 실행시켜서 동적분석을 하게되면 1년이 지난 후 플래그를 알려주는 프로그램이라는 것을 알 수 있다. 그러면 우리는 I will show you the flag after 1 year :p 라는 문자열을 찾기만 하면 main 함수로 이동할 수 있을 것이다. 2. 문자열 검색 Search - Search for Strings 를 클릭해서 문자열의 길이가 15 바이트가 넘으니 최소 길이를 15로 설정하고 검색해주면 우리가 찾고자하는 문자열을 찾을 수 있다. 마찬가지로 한 번 클릭해주고 창을 닫아준다. 3. 문자열 참조 그러면 어셈블리 코드에서 해당 문자열이 사용된 위치로 이동해있는데, 그 상태에서 우클릭을하여 그 문자열을 참조하고 있는 함수를 찾아 해당 ..

InfoSec/Wargame

[워게임] Simple Crack Me 2 풀이

1. 프로그램 분석 우선 프로그램이 어떻게 작동하는지 알기 위해, 실행시켜보자 $ ./simple_crack_me_2 12341234123412342134123412341234123412342134 your input length is wrong x( $ ./simple_crack_me_2 12342134asdfasdfadsf your input length is wrong x( $ ./simple_crack_me_2 asdfasfasd123 your input length is wrong x( $ ./simple_crack_me_2 123123asdasd your input length is wrong x( $ 우선, 입력 값을 입력했을 때, 입력 값의 길이가 틀리다는 문자열이 출력된다. 입력 값의 일..

InfoSec/Wargame

[워게임] Simple Crack Me 풀이

Simple Crack Me | 워게임 | Dreamhack Simple Crack Me Description Exercise: Simple Crack Me에서 실습하는 문제입니다. 이 문제는 사용자에게 숫자를 받아 정해진 방법으로 입력값을 검증하여 correct 또는 wrong을 출력하는 프로그램이 주어집니다. 해당 바이너 dreamhack.io 1. 시작 단계 프로젝트를 생성해준다. 생성하지 않으면 Tool Chest에 용 그림이 뜨지 않는다. 들어오면 처음에는 프로젝트 폴더가 비어있을 텐데, File에서 Import File을 해서 simple_crack_me를 해준다. 처음엔 여기서 불러오기가 안되길래 Ghidra를 처음부터 다시 깔았는데 꼭 User 폴더에 생성해야한다. 그 이유는 나도 모르겠다..

InfoSec/Wargame

[워게임] rev-basic-0 풀이

◾문제 파악 프로그램을 실행시키면 문자열을 입력하라는 Input 메시지가 뜨게 되고 아무 문자열이나 입력하면 Wrong 이라는 결과 값이 표시가 된다 고로 Correct를 표시하게 하는 문자열도 존재한다는 것을 알 수 있다 ◾정적 분석 IDA 프로그램을 사용하여 chall0.exe 파일을 분석해본다 우선 Correct라는 문자열이 사용된 위치를 찾기 위해 문자열 검색을 하자 shift + F12를 누르면 문자열 리스트가 나오게 된다 여기서 Correct라는 문자열을 쉽게 찾을 수 있다 더블 클릭하여 어셈블리 코드에서 문자열을 출력하는 위치를 찾는다 버퍼에 Correct가 저장되어 출력되는 것이므로 Buffer를 선택하고 x 단축기를 눌 상호참조를 해본다 그러면 이런식으로 메인 함수로 이동하게 되고, F5..

agor
'InfoSec/Wargame' 카테고리의 글 목록