Pwnable
-
[Pwnable] 리버싱 핵심 원리 Crackme 1~5Pwnable 2020. 9. 17. 06:34
포너블 스터디를 하면서 처음 올리디버거도 깔아보고 .. ㅎㅎ리버싱 핵심원리에서 Crackme 를 리뷰해보려 한다ㅎㅎ 올리디버거 처음 받구 실행시킬 때 에러가 계속 나서 ... ㅠㅠ 어떻게 해결하는지 찾아봤다~! # 올리디버거 설정1. 작업 관리자에 들어가서 올리 디버거에서 파일 위치 열기를 하면 지금 어떤 파일 때문에 에러가 나는지 확인할 수 있다. 그래서 그걸 제어판 들어가서 해당 프로그램을 삭제하면 된다.(대부분 은행 보안앱 때문에 실행이 안된다!)2. UDD 폴더와 Plugin 폴더를 생성해서 해당 경로로 지정해준다. 3. 관리자 권한으로 올리디버거를 실행한다. # Crackme 1문제 해결방법해당 앱을 올리디버거로 열어본다.이 프로그램은 어셈으로 짜여진 프로그램이라서 코드가 짧다! 우리는..
-
FTZ. level 11 정리Pwnable/FTZ 2020. 2. 25. 05:17
level11 비밀번호 : what!@#$? 먼저 힌트를 본다. 뭔가 strcpy에서 오버플로우가 일어날꺼같지 않은가!? (내 생각은 str의 크기가 주어졌는데 그 이상 입력할 수 있으면 오버플로우가 일어날꺼같아서) 그럼 attackme를 gdb로 확인해보자. [level11@ftz level11]$ gdb attackme (gdb) set disassembly-flavor intel (gdb) disas main main+27 부터 main+48 까지 strcpy 부분이므로 해석을 자세히 해보면 //이전까지 esp = ebp - 280 0x0804848b :add esp,0x10 //: esp = [ebp - 264] 0x0804848e :sub esp,0x8 //: esp = [ebp - 272] 0..
-
FTZ. 함수 프롤로그 / 함수 에필로그Pwnable/FTZ 2020. 2. 11. 05:37
함수 프롤로그 : 함수 내에서 사용할 스택 프레임을 설정한다. esp // 스택의 마지막 부분을 저장하면 push, pop 에 따라 4씩 값이 변한다. eip // 다음에 실행하여야 할 명령어가 존재하는 메모리 주소가 저장됨. ebp // 스택의 시작지점 주소가 저장된다. (스택의 처음 부분) push // 스택 값을 넣는다. esp의 값이 4만큼 줄어들고 이 위치에 새로운 값이 채워진다. push ebp // 돌아갈 곳의 주소를 스택에 저장하는 것이다.(이때 esp가 4만큼 움직인다.) mov // 소스에서 목적지로 데이터를 복사한다. pop // esp 레지스터가 가르키고 있는 위치의 스택 공간에서 4byte 만큼을 목적지 피연산자에 복사하고 esp 레지스터의 값에 4를 더한다. 함수 에필로그 : 함..
-
FTZ . level9 정리Pwnable/FTZ 2020. 2. 11. 05:26
login : level9 password : apple 가장 먼저 ls 명령어를 통해서 파일들을 확인해보자 [level9]$ ls hint tmp [level9]$ cat hint hint 를 확인해보면 (strncmp : 문자열을 비교하는 함수 / fgets : [저장할 변수, 데이터의 최대 크기, 입출력 방법]) // hint의 소스코드 #include #include #include main(){ char buf2[10]; char buf[10]; printf("It can be overflow : "); fgets(buf,40,stdin); if ( strncmp(buf2, "go", 2) == 0 ) { printf("Good Skill!\n"); setreuid( 3010, 3010 ); s..
-
Pwnable. 해쿨핸드북 요약 정리 (5차)Pwnable/이론 2020. 1. 2. 18:54
Section 22. SetUID , SetUID bit 설정하는 방법 1. USER에 SetUID bit 부여하기 > chmod u+s (파일명) 2. USER에 부여된 SetUID bit 제거하기 > chmod u-s (파일명) 3. GROUP에 SetGID bit 부여하기 > chmod g+s (파일명) 4. GROUP에 부여된 SetGID bit 제거하기 > chmod g-s (파일명) 5. SetUID와 SetGID bit를 모두 부여하기 > chmod ug+s (파일명) or > chmod +s (파일명) 6. SetUID와 SetGID bit를 모두 제거하기 > chmod ug-s (파일명) or > chmod -s (파일명) #내 서버에서 SetUID bit가 부여된 파일들 찾아보기 > f..