분류 전체보기

    ProjectH4C 3개월 1주차 과제(Dreamhack - welcome)

    문제가 진짜 쉽다. 접속하면 flag를 뿌려준다.

    ProjectH4C 3개월 1주차 과제(HackCTF - 내 버퍼가 흘러넘친다!!!)

    버퍼가 흘러 넘친다라는 말은 매우 BOF로 받아들여진다. 문제를 좀 더 분석해보도록 하자. 📖 1) 문제 파악 실행이랑 출력은 매우 정상적으로 이루어진다. main 함수에서는 별 다른 이상한것은 보이지 않는다. read, gets에서 어떻게 취약점이 발생할 수는 있을 것 같다. 다른 함수들이 있는 지도 확인해보자. 헉 의심이 가는 함수들도 존재하지 않는다. 혹시 셸코드를 써야하는 문제인가 ??? IDA로 뜯어보도록 하자. 으으으으으으으음,,,,,,, 우선 gets에서 받는 값을 지정해주고 있지 않다. 비록 s는 20바이트만큼 선언되었지만, 어떻게 어떻게 해볼 수 있을 것 같다. 아니면 name으로 s 버퍼를 덮어버릴 수도 있긴 하겠다. 📖 2) 문제 분석 우선 쉘코드를 넣어야 한다고 생각했다. 그 쉘코드..

    ProjectH4C 3개월 1주차 과제(HackCTF - Basic FSB)

    우선 이번 문제의 이름은 Basic FSB이다. FSB가 무엇인지 먼저 공부를 해보자. 먼저 FSB는 Format String Bug의 줄임말이다. 포맷스트링 버그는 이전에 공부를 해본적이 있다. (엄청 예전에 ....) 우선 문제를 풀면서 복습을 해보자. 📖 1) 문제 파악 이렇게 기본적으로 aa를 넣는다면 aa가 출력이 되지만, 서식문자를 집어넣는다면, 그에 해당하는 값을 출력하게 된다. 좀 더 자세히 알기 위해 gdb와 IDA를 통해 까보도록 하자. 어셈블리 코드는 꽤 간단하다. vuln함수를 좀 더 알아보자. 그렇군.... ?? IDA로도 열어보자. 먼저, main 함수이다. 마찬가지로 vuln 함수를 좀 더 까보자. 흠....ㅁ..ㅁ.ㅁ.ㅁ.ㅁ.ㅁ,ㅁ,ㅁ,ㅁ,ㅁ,ㅁ,ㅁ,ㅁ,ㅁ,ㅁ,ㅁ,ㅁ,ㅁ,ㅁ,..

    ProjectH4C 3개월 1주차 과제(HackCTF - Basic BOF#2)

    포너블... 아직 기초지만 너무 재미있다. 📖 1) 문제 파악 ...? 우선 gdb로 열어보도록 하자. 📖 2) 문제 분석 처음에 nc 접속하게 되었을 때 보았던 부분이 이곳인 것 같다. 함수 자체는 매우 간단하다. v5라는 포인터 변수에 sup 함수의 주소를 넣어준다. 이후 fgets함수를 실행하고 v5를 실행한다. sup함수는 그냥 puts만 진행한다. 한 가지 중요한것은, shell() 이라는 함수가 존재한다는 것이다. (하지만 main 내에서는 등장하지 않는다.) 이 shell 함수는 /bin/dash를 실행하는 함수이다. 즉, 우리는 s에서 BOF를 발생시켜 v5를 shell 함수의 주소로 덮어주어야 한다. 이렇게 스택이 쌓여있다고 보면 되겠다. 📖 3) 문제 분석 128byte를 채우고 she..

    ProjectH4C 3개월 1주차 과제(HackCTF - Basic BOF#1)

    📖 1) 문제 파악 우선, 입력된 값과, 그 값과 관련된 메모리 주소를 출력해주는 것 같다. 아직 잘 모르겠으니 gdb와 IDA를 통해 분석해보자. 코드가 그리 길지는 않다. 그래도 중요한 부분만 따로 보자. 📖 2)문제 분석 0x080484dc :mov DWORD PTR [ebp-0xc],0x4030201 0x080484e3 :mov eax,ds:0x804a040 0x080484e8 :sub esp,0x4 0x080484eb :push eax 0x080484ec :push 0x2d 0x080484ee :lea eax,[ebp-0x34] 0x080484f1 :push eax 0x080484f2 :call 0x8048380 0x080484f7 :add esp,0x10 0x080484fa :sub esp,0..

    ProjectH4C 2개월 4주차 과제 (우리집에 GDB 있는데… 메모리 보고갈래?)

    bpsecblog.wordpress.com/2016/03/08/gdb_memory_1/ - 우리집에 GDB 있는데 ... 메모리 보고갈래? - 사실 이 글, 내가 중학교 3학년 때 봤던 글이다. 물론 제대로 이해하지 못하고 넘어간 내용들도 있을 것이다. 그러니, 다시 한 번 공부하고 넘어가보도록 하자. 📖(1) 먼저 내 노트북 램은 16GB 이다. 1Byte는 컴퓨터에서 주소공간 한 개의 크기다. 그래서 16GB는 2^35Byte이니, 저 만큼의 주소를 가질 수 있다. (엄청 많다 ㄷ ㄷ ㄷ ㄷ ㄷ ㄷ) 하지만 32bit의 cpu를 가지고 있다면 8기가나 16기가에 접근을 할 수 없다. 이 자료를 참고해서, 더 알아보자. 먼저 커널 영역에는 시스템 운영에 필요한 메모리와 운영체제가 올라가 있다. 그래서 ..