Wargame
-
lvl 01Wargame/CodeEngn Advance RCE 2019. 1. 10. 14:30
문제 이 프로그램은 몇 밀리세컨드 후에 종료 되는가 정답인증은 MD5 해쉬값(대문자) 변환 후 인증하시오 풀이 → 프로그램을 실행한다. 다음과 같은 메시지 창이 나타나고 일정시간이 흐른 후 자동으로 종료된다. → PEiD 도구를 이용하여 분석한 결과, UPX로 패킹된 것을 확인했다. → UPX를 언패킹한 후, IDA 도구를 이용하여 디스어셈블한다. → String 값 확인 시, AutoIt Script 로 구현된 것을 확인할 수 있다. → basic level 19 문제와 같이 디컴파일을 통해서, timeout 시간 정보를 획득할 수 있다.
-
[Toddlers's Bottle] fdWargame/pwnable.kr Challenge 2019. 1. 10. 14:06
→ 문제는 아래와 같다. → 로그인 후 파일 확인. → fd.c 소스 확인. → 소스분석 결과, 문제를 풀기 위해선 "!strcmp("LETMEWIN\n", buf)"을 참으로 만들어야 "good job :)" 이라는 메시지와 함께 /bin/cat/flag 명령어가 실행되서 flag 값을 알 수 있다. 따라서, buf 배열에 "LETMEWIN\n" 이라는 문자열이 저장되야 한다. → 그리고 buf 배열은 read 함수(read(fd,buf,32);)에 의해서 할당된다. 해당 read 함수를 해석하면, fd는 파일 디스크립터 값, buf는 읽은 데이터를 저장할 버퍼, 32 값은 얼만큼 읽을지를 전달하는 인자이다. 여기서 파일 디스크립터 값에 대해서 알아야 한다. → 리눅스 파일 디스크립터 값은 아래와 같다..
-
lvl 01 gate -> gremlinWargame/HackerSchool The Load of the BOF Redhat 2019. 1. 10. 13:38
→ 소스코드는 아래와 같다. 1 /* 2 The Lord of the BOF : The Fellowship of the BOF 3 - gremlin 4 - simple BOF 5 */ 6 7 int main(int argc, char *argv[]) 8 { 9 char buffer[256]; 10 if(argc < 2){ 11 printf("argv error\n"); 12 exit(0); 13 } 14 strcpy(buffer, argv[1]); 15 printf("%s\n", buffer); 16 } → 어셈블리 코드는 아래와 같다. 0x8048430 0x8048431 0x8048433 0x8048439 0x804843d 0x804843f 0x8048444 0x8048449 0x804844c 0x80..
-
lvl 07Wargame/HackerSchool FTZ 2019. 1. 10. 12:52
→ 힌트 정보 확인. → /bin/level7 을 실행해보면서 반응을 살펴봄. → /bin/wrong.txt 파일 열람. (이 문제에 대해선, 사실 개인 FTZ 서버로 테스트하는 사람은 wrong.txt가 없다고함.. 그래서 root계정으로 들어가서 wrong.txt를 만들어줬음) 그래서, root계정 접속 후 wrong.txt를 만든 후, 내용은 당므과 같은 내용 입력 Cant 't Password. Near the Password!--_--_- --____- ---_-__ --__-_- → wrong.txt 를 생성한 후, 다시 /bin/level7을 실행. → 아까 생성한 wrong.txt 파일의 내용이 출력된다. → 힌트에서 비밀번호는 가까이 있다고 말하고, 저 이모티콘같이 생긴게 매우 의심스럽다..