미리 알아둘 것 heap에서의 unlink 과정 이해 이중 연결 리스트(doubly-linked list) 이해 (자료구조) 이번에는 pwnable.kr 에 올라가 있는 시스템 해킹 문제 중, 비교적 최근에 소개한 heap에서의 unlink 하는 과정에서 검증을 제대로 하지 않으면 발생할 수 있는 (glibc 기준 버전 2.23. 이하) 부분을 실제로 실습해 볼 수 있는 <unlink> 라는 문제를 한번 풀어보겠습니다. 개인적으로는 이해하는데 시간이 좀 많이 걸렸던 것 같습니다. 한번 살펴봅시다. 문제에서 주어진 C언어 소스코드는 아래와 같습니다. #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct tagOBJ{ struct tagOBJ* fd; struct tagOBJ* bk; char buf[8]; }OBJ; void shell(){ system("/bin/sh"); } void unlink(OBJ*...
#Assembly
#writeup
#구조
#뉴비임
#메모리
#어렵다
#워게임
#이중연결리스트
#취약점
#풀이
#해설
#wargame
#unlink
#pwntool
#C
#Clang
#doubly_linked_list
#exploitation
#glibc
#heap
#ptmalloc2
#pwn
#pwnable
#pwnable_kr
#힙
원문링크 : [pwnable.kr] 「unlink」 풀이