Tcache Poisoning Tcache PoisoningTcache PoisoningDouble Free Bug를 이용하여 tcache_entry를 조작하고 이미 할당된 메모리에 다시 힙 청크를 할당하는 공격 기법이다. tcache에서 사용하는 tcache_put과 tcache_get 함수에서는 old와 p를 검증하지keyme2003.tistory.com [*] '/root/dream/tcache_poison/tcache_poison' Arch: amd64-64-little RELRO: Full RELRO Stack: No canary found NX: NX enabled PIE: No PIE (0x400000)보호기법을 확인하면 Ful..
개념정리one_gadget은 Glibc 바이너리 내에서 execve("/bin/sh", rsp+0x30, environ)과 같은 쉘을 실행하는 특정 코드 시퀀스를 의미한다. 이 가젯을 통해 특정 조건이 충족되면 공격자가 직접 쉘을 실행할 수 있다. one_gadget의 가장 큰 장점은 단일 가젯으로 쉘을 획득할 수 있다는 점이다. one_gadget을 사용할 때 중요한 점은 각 가젯이 성공적으로 실행되기 위해 충족해야 하는 특정 조건이 있다는 것이다. 이런 조건은 가젯 실행 시 레지스터 또는 메모리 상태와 관련이 있다. 예를 들어, 일부 가젯은 특정 레지스터가 0이어야 하거나 특정 메모리 위치가 유효한 포인터를 포함해야 할 수 있다. 다음은 one_gadget을 이용한 익스플로잇 단계다.취약한 프로그램 ..
개념정리Read-Only Relocations (RELRO) 개념은 바이너리 익스플로잇 보호 메커니즘에서 중요한 역할을 한다. Full RELRO는 특정 유형의 익스플로잇을 방지하는 가장 강력한 보안 조치고 특히 GOT overwrite 기법을 막는 것에 효과적이다. 하지만 이를 우회할 수 있는 방법은 존재한다. 일단 RELRO 개념을 이해해보자. RELRO는 3가지 종류가 있다.No RELRO (RELRO 미적용):보안 수준: 최저설명: 이 설정은 어떤 재배치 읽기 전용 보호도 구현하지 않습니다.취약점: 공격자가 글로벌 오프셋 테이블(GOT)을 덮어쓸 수 있도록 허용하여 GOT 덮어쓰기 공격과 같은 다양한 익스플로잇에 취약합니다.Partial RELRO (부분적인 RELRO):보안 수준: 중간설명: 이..