목록War Game (174)
tmxklab
1. 문제 1) 문제확인음.. 또 실행이 안된다. 근데 비쥬얼 베이직에서 문자열 비교함수를 찾아보니..요건데 입력하면 틀리다고 나온다..ㅋㅋㅋㅋㅋㅋ 2. 접근방법 다음 링크를 참고해서 문제해결ㄱㄱMsvbvm50.dll 다운로드 및 오류 해결법Msvbvm50.dll 에러가 발생하면 문제가 생긴 파일이 있는 위치에 파일을 복사하여 넣거나 파일을 새로 생성해야 합니다. 여기에서는 파일을 다운로드 받아서 시스템 폴더에 넣거나 다이렉트X 최신버전을 설치하여 파일을 새로 생성하는 방법을 알려드리겠습니다. 1. 바탕화면의 내 컴퓨터 아이콘을 마우스 오른쪽 버튼을 클릭합니다. 다음 그림과 같이 목록이 표시되면 속성을 선택하여 시스템 창을 오픈합니다. 2.https://boksbooks.tistory.com/67 그럼 ..
1. 문제 1) 문제확인실행이 안된다. 2. 접근방법 010 editor로 열어봤을 때 PE Header에 뭔가 문제가 있다.DOS Header의 e_lfanew멤버 즉, 첫 바이트로부터 offset이 0x3c떨어진 곳에 NT Header가 시작되는 위치의 옵셋이 존재한다. 근데 위 사진을 보면 알 수 있듯이 0x1000값이 들어있다. → 잘못됨여튼, 이것말고도 각 헤더의 멤버에 세팅 값이 이상한 것을 확인할 수 있어 요런 것들을 고쳐서 PE가 정상 작동하도록 해야할 것 같다. 결론적으로 잘 보면 Dos Header는 정상적으로 되어있고(위에서 말한 NT Header가 시작 옵셋을 알려주는 e_lfanew빼고) Dos Stub은 아예 없고 Nt Header도 아예 없는 것 같아보이지만 Section He..
1. 문제 1) 문제확인실행 결과 CD-ROM Drive가 아니라고 한다. 2. 접근방법 GetDriveTypeA()를 호출하고 eax값과 esi를 비교하여 같아야 할 듯하다.esi값은 어떤 값인지는 모르겠는데 eax값은 GetDriveTypeA()의 리턴 값으로 생각된다. 최종적으로 "cmp eax, esi"을 실행하기 전까지 eax는 2번 감소하게 된다. GetDriveTypeA()는 디스크 드라이브 타입을 알아내는 함수이며 리턴 값에는 드라이브 타입을 알 수 있다.DRIVE_CDROM일 때 리턴 값이 5인 것을 알 수 있다. 3. 문제풀이 GetDirveTypeA()의 인자에 C드라이브 path가 들어가며 실행 후 리턴 값으로 3이 eax에 저장되어진다. eax가 2번 감소되어 1이 저장되어 있고 ..
1. 문제확인We made a simple MD5 calculator as a network service. Find a bug and exploit it to get a shell. Download : http://pwnable.kr/bin/hash hint : this service shares the same machine with pwnable.kr web service Running at : nc pwnable.kr 9002네트워크 서비스로 간단한 MD5 계산기를 만들었으니 버그 찾아서 익스플로잇 해보라고 한다. 1) mitiagation 확인 2) 문제 확인libcrypto.so.1.0.0 이 없어서 실행이 안되는듯, 설치 ㄱㄱ아마도 64bit용 libssl1.0.0 라이브러리는 있는데 32b..
1. 문제 확인I made a simple brain-fuck language emulation program written in C. The [ ] commands are not implemented yet. However the rest functionality seems working fine. Find a bug and exploit it to get a shell. Download : http://pwnable.kr/bin/bf Download : http://pwnable.kr/bin/bf_libc.so Running at : nc pwnable.kr 9001간단한 brain-fuck 에뮬레이션 프로그램을 만들었는데 [ ] 안에 들어갈 명령어를 아직 구현하지 못했음그래서 버그를 찾아서 쉘을 따..
1. 문제 1) mitigation 확인 2) 문제 확인 환경변수 team_name=bi0s를 설정하고 파라미터를 주면 됨 3) 코드흐름 파악 3-1) main __int64 __fastcall main(int a1, char **a2, char **a3) { const char *s1; // [rsp+20h] [rbp-10h] s1 = getenv("team_name"); if ( s1 && !strncmp(s1, "bi0s", 4uLL) ) { if ( a1 == 2 ) { if ( (unsigned int)sub_87C(s1, a2[1]) == 1 ) sub_830(a2[1]); else printf("Better luck next time!"); } else { printf("usage: chal..
1. 문제 1) mitigation 확인 문제 이름대로 32비트 MIPS 바이너리 파일이다. 2) 문제 확인 qemu로 확인할라 했는데 이상하게 mips만 안됨, 실행시키면 세그먼테이션 폴트 발생 3) 코드흐름 파악 undefined4 main(void){ char input_24; int input_length; int flag1; char cStack49; int flag2; uint flag3; int flag4; char input [28]; memset(input,0,0x1a); printf(0xdf0); __isoc99_scanf(0xdfc,input); input_length = strlen(input); if (input_length == 0x19) { flag1 = 0; while (fl..
1. 문제 확인 파일 확인 horcruxes@pwnable:~ ls -l total 20 -rwxr-xr-x 1 root root 12424 Aug 8 2018 horcruxes -rw-r--r-- 1 root root 131 Aug 8 2018 readme horcruxes@pwnable:~$ cat readme connect to port 9032 (nc 0 9032). the 'horcruxes' binary will be executed under horcruxes_pwn privilege. rop it to read the flag. horcruxes파일 하나 주어지며 nc로 붙어서 9032 포트로 접속 가능하다고 한다. 추가로 rop를 이용해서 flag값을 읽으라고 한다. 일단 ftp로 hor..
1. 문제 확인 파일 확인 blukat@pwnable:~$ ls -l total 20 -r-xr-sr-x 1 root blukat_pwn 9144 Aug 8 2018 blukat -rw-r--r-- 1 root root 645 Aug 8 2018 blukat.c -rw-r----- 1 root blukat_pwn 33 Jan 6 2017 password [ blukat.c ] #include #include #include #include char flag[100]; char password[100]; char* key = "3\rG[S/%\x1c\x1d#0?\rIS\x0f\x1c\x1d\x18;,4\x1b\x00\x1bp;5\x0b\x1b\x08\x45+"; void calc_flag(char* s){..
1. 문제 확인 파일 확인 unlink@pwnable:~$ ls -l total 20 -r--r----- 1 root unlink_pwn 49 Nov 23 2016 flag -rw-r----- 1 root unlink_pwn 543 Nov 28 2016 intended_solution.txt -r-xr-sr-x 1 root unlink_pwn 7540 Nov 23 2016 unlink -rw-r--r-- 1 root root 749 Nov 23 2016 unlink.c intended_solution.txt파일도 하나 더 있는데 쉘을 따고 나서 보자 [ unlink.c ] #include #include #include typedef struct tagOBJ{ struct tagOBJ* fd; struc..