[pwnable.kr] 「unlink」 풀이


[pwnable.kr] 「unlink」 풀이

미리 알아둘 것 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」 풀이