'Pwnable/포너블 정리' 카테고리의 글 목록

Pwnable/포너블 정리 9

[ Pwnable ] ARM 공부자료

1. https://johyungen.tistory.com/category/ARM?page=2 'ARM' 카테고리의 글 목록 (2 Page) johyungen.tistory.com 2. https://defenit.kr/2019/09/20/Rev/%E3%84%B4%20Research/ARM_%EA%B8%B0%EC%B4%88/ ARM_기초 목차 ARM (Advanced Risc Machine) Thumb 모드 / ARM 모드 ARM Instruction Thumb Instruction ARM 레지스터 ARM Intruction ARM Assembly Branch Instruction (분기 명령) LDR and STR Instruction (단일 데이터 이동명령) LDM and STM I defenit.k..

Linux Security Check정리

Security Check > malloc과 free함수를 쓸 때 악의적인 행위를 하지 못하게 함수 내부적으로 검증 단계가 존재한다. > 대표적으로 malloc에서 2가지, free에서 7가지, Unlink에서 2가지 검증 단계를 거친다. Malloc 1. malloc(): memory corruption (fast) 2. malloc(): memory corruption malloc에서는 검증 단계로 위의 두 가지가 존재한다. 위의 검증 단계에서 구체적으로 어떤 동작을 하는지 알아기 위해서 malloc source code를 보도록 하자. 아래 코드는 malloc함수 내부에서 security check를 하는 부분이다. https://github.com/andigena/glibc-2.23-0ubuntu..

Unsafe Unlink 정리

Unsafe Unlink 쓸 수 있는 상황 1. malloc으로 할당 받은 힙의 주소를 전역 변수에서 관리해야 함. 2. 힙 최소 2개이상에 두 번째 힙의 헤더를 조작할 수 있어야 한다. Unlink의 역할 Unlink는 freelist에 있는 힙 청크 중에 중간에 끼어 있는 청크에 메모리가 할당될 때 힙 청크 리스트 노드들 간의 연결관계를 정리해주는 역할을 함. 아래 그림은 P의 위치에 malloc, calloc으로 메모리가 할당될 때 Unlink가 수행하는 동작이다. UnLink 발생 조건 Unlink과정에서 발생하는 취약점을 알기 위해서 소스코드를 분석해보겠다. #define unlink(AV, P, BK, FD) { \ FD = P->fd; \ BK = P->bk; \ if (__builtin_e..

반응형