[Dreamhack] linked-list
문제 링크 https://dreamhack.io/wargame/challenges/198 문제 설명 이제 막 자료구조를 배운 드림이는 단일 linked list로 사람의 개인정보를 저장하는 프로그램을 만들었어요. 그리고 자랑을 하고싶어서 자신이 만든 프로그램을 서버에서 돌려서 누구나 사용해볼 수 있도록 했습니다. 그런데 코드에 오타가 있네요…? 드림...
문제 링크 https://dreamhack.io/wargame/challenges/198 문제 설명 이제 막 자료구조를 배운 드림이는 단일 linked list로 사람의 개인정보를 저장하는 프로그램을 만들었어요. 그리고 자랑을 하고싶어서 자신이 만든 프로그램을 서버에서 돌려서 누구나 사용해볼 수 있도록 했습니다. 그런데 코드에 오타가 있네요…? 드림...
문제 링크 https://dreamhack.io/wargame/challenges/216 문제 설명 루트 권한으로 실행되는 서비스를 찾았습니다. 그러나, 큐브안에 갇혀서 빠져나올 수가 없습니다. 큐브를 탈출하고 플래그를 획득하세요! 문제 분석 함수 초기에 chroot("/home/cube/cube_box")가 호출되어 루트 디렉터리가 “/ho...
문제 링크 https://dreamhack.io/wargame/challenges/456 문제 설명 I know there’s been some trust issues on “baby” CTF chals, but this really is a NullNull(colloquially “spacious”, “easy” in KR) pwnable chal...
문제 링크 https://dreamhack.io/wargame/challenges/404 문제 설명 크리스마스 기념 드림산타가 선물을 준비했어요!! 취약점, 플래그, 쉘도 맘대로 준다던데..? 문제 분석 1번 메뉴를 이용하면 gets 함수를 이용하여 입력할 수 있어 스택 버퍼 오버플로우가 발생한다. 하지만 canary, l...
윈도우는 디바이스 가드와 자격증명 가드 같은 새로운 가상화 기반의 보안 기능을 가진다. 이들은 하이퍼바이저를 이용해 운영체제와 유저 데이터의 안전성을 향상시킨다. 이러한 환경은 여전히 비특권 상태(Ring 3)이지만 가상 신뢰 레벨 1(VTL 1)을 가지며, NT 커널(Ring 0)과 애플리케이션(Ring 3) 둘 다가 살아가는 일반적인 VTL 0...
윈도우 보안 모델에서 디버그 특권(관리자 계정 등)을 가진 토큰으로 실행하는 프로세스는 해당 머신에서 실행 중인 다른 프로세스에게 자신이 원하는 어떤 접근 권한이든 요청할 수 있다. 다른 프로세스의 메모리에 접근해 읽기/쓰기 코드 인젝션 스레드 일시 중지/재실행 프로세스 정보 얻기 ...
최소 프로세스 NtCreateProcessEx 함수에 특별한 플래그가 지정되어 있고, 호출자가 커널 모드에 있으면 이 함수는 조금 다르게 동작해 PsCreateMinimalProcess API의 실행을 유발한다. PsCreateMinimalProcess는 다음과 같은 부분 없이 프로세스를 생성한다. 유저 모드 주소 공간이 ...
_IO_FILE 구조체 _IO_FILE 구조체는 리눅스 표준 라이브러리에서 파일 스트림을 나타내기 위한 구조체이며, 파일을 열기 위한 fopen 함수를 호출했을 때 힙 영역에 할당된다. struct _IO_FILE_plus { FILE file; const struct _IO_jump_t *vtable; }; struct _IO...
RELRO 메모리 보호 기법 중 RELRO(RELocate Read-Only)라는 것이 있다. 이는 쓰기 권한이 불필요한 데이터 영역에 쓰기 권한을 제거한다. RELRO 적용 대상 중 유심히 여겨봐야 할 것은 GOT(Global Offset Table)이다. 현대의 바이너리 실행 환경에서는 ASLR(Address Space...
커널 커널은 기본 메커니즘을 제공하는 ntoskrnl.exe 내의 함수 집합으로 구성된다. 이들 함수에는 익스큐티브 컴포넌트에 의해 사용되는 스레드 스케줄링과 동기화 서비스 및 각 프로세서 아키텍처별로 다른 인터럽트와 예외 디스패칭 같은 저수준 하드웨어 아키텍처 종속적인 지원이 해당된다. 커널 코드는 주로 C로 작성...