그 충분히 다른 블로그 참고하고 왔을 거 같아서 Binning은 기본적인 요소보다는 중요한 포인트만 갖고 왔습니다. Boundary Tag메모리 청크(블록이라고 표현하는게 맞을 수도) 경계를 식별하고 관리하기 위한 메커니즘이다.-> 청크의 헤더 정보를 다음 청크에 복사하는 식으로 관리한다.그러면 어떤 일이 발생하냐면, 청크의 앞뒤 정보를 빠르게 확인할 수 있다. 그러면 인접한 청크들이 free된다면 병합을 할 수 있다! 그러면 메모리 관리가 효율적이다! Boundary Tag 메커니즘이 heap에서 장점들이 Chaining된다 +--------+--------------------+--------+| Header | Payload | Footer | 사실 dlmalloc에서 Boun..
Heap이 왜 어려울까?1. Stack Memory와 너무 다른 구조Stack 메모리에서는 단순히 push, pop 동작만 하기에 우리가 이해하는데 큰 어려움은 있지 않았다.반면 Heap의 메모리 할당은 비정형적이고 동적이기에 정적으로 할당되는 Stack 메모리보다 배우기 까다롭다. 2. 너무 많은 Memory Allocators Google의 tcmallocGNU의 ptmalloc2FreeBSD/Firefox의 JemallocSolaris의 Libumem등 동적 메모리 할당자는 종류가 많다. 운영체제, 메모리 재사용, 단편화, 낭비등 여러면에서 각각 구현 목표가 다를 수 있다. ptmalloc2.. 빠르고 쉽게 알아보자우선 리눅스 glibc에서는 ptmalloc(pthreads malloc)을 제공한다..
샌드박싱 사이클 예시sandboxing은 시스템 보안 측면에서 보안 위험을 초소화합니다. 핵심만 적고 싶은데 기본 개념을 정리해 버려서.. 어쩔 수 없네요. 궁금하신 분은 아래에 더보기 버튼을 눌러 펼쳐주세요. 더보기Sandbox 기본 개념애플리케이션, 코드, 프로세스 등을 독립된 환경에서 실행하여 시스템 장애 및 소프트웨어 취약점의 확산으로부터 완화하기 위한 격리 매커니즘 이를 통해 악성 코드가 시스템 전체에 피해를 주는 것을 방지하고, 안전하게 의심스러운 코드나 애플리케이션을 실행할 수 있다. 쉽게 설명하기 위해 간단한 예시를 들고 왔다.웹 브라우저 : 한 탭에서 발생한 문제를 전체 브라우저에 영향끼치지 않게 하기 위해 샌드박스 환경에서 실행모바일 앱 : iOS, Android 등 앱이 시스템의 다..
chroot(Change Root Directory)개요chroot는 루트 디렉토리를 변경하며, 변경된 디렉토리에서는 상위 디렉토리에 파일 및 명령 접근이 불가능하다.이는 chroot는 리눅스 위에서 프로세스를 격리시키는 기본적인 방법이다. 이렇게 시스템해킹에서 마주치게 되면 머리가 아프게 되는데, 사실 별 거 없으니 하나 배워가보자chroot 한계chroot는 프로세스를 격리시킬 수 있지만, 다음과 같은 제한사항이 있다.네트워크, 프로세스, 파일시스템 등 자원에 접근이 가능하며 제한이 없다.root 권한으로 동작한다. chroot 탈옥 쉽게 하기 (pwnable 관점)chroot jail break PoC chdir("../../../../../"); chroot("."); execve..
Stack Alignment실제 exploit할 때 함수의 주소가 달라요.페이로드는 분명 잘 짠 거 같은데 Segmentation Fault가 발생해요 -> Stack Alignment (MOVAPS) 의심16바이트 정렬이 아닐 경우 발생 가능성 있음 보통 ROP할 때 많이 겪게 된다.64비트 환경에서는 ret와 같은 가젯으로 8바이트를 채워 16바이트 정렬을 할 경우 페이로드가 의도대로 동작하는 경우가 있다. https://hackyboiz.github.io/2020/12/06/fabu1ous/x64-stack-alignment/https://c0wb3ll.tistory.com/entry/ret2libc-x64 로컬 익스와 서버 타이밍 조절 로컬은 연산 속도가 빠르니 금방 익스가 된다해도 서버같은 ..
intend solvemain 함수에서 password 파일을 읽어온 값들을 확인한다. password를 확인했다.이제 이걸 프로그램에 넣어보면 flag가 나온다. unintend solvepassword파일은 애초에 열 수 있다. cat인줄 알고 헷갈린다면 head, tail등도 사용해보자만약 정말로 권한이 없었다면 다음과 같이 뜬다.head: cannot open 'password' for reading: Permission deniedtail: cannot open 'password' for reading: Permission denied
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.