-
Allocate Heap with fgetsHack/Pwnable 2016. 11. 17. 05:35
fgets 는 누구나 알고있듯이 파일 등에서 문자열을 읽어들인다.
3번쨰인자에서 stream을 설정할 수 있는데, 여기서는 fgets에 함수를 사용해서 어떻게 할당되는지를 볼것이다.
stack에 변수를 할당하고 이곳에 값을 담는 코드이다.
12345678910#include <stdio.h>int main(){char p[25] = {0,};printf("Input: ");fgets(p,24,stdin);printf("p: %p",p);return 0;}cs 그냥 배열을 생성하고, fgets로 입력을 받는다.
B를 입력해주고나서 스택과 힙의 상황을 확인해볼것이다.
스포를 하자면 heap이 존재한다.
heap을 확인해보자
p: p스택주소가 담겨있다. 힙영역에 이값이 쓰이고, 저 스택을 확인해보면 우리가입력한값이 존재한다.
힙영역에서 좀만 더 확인해보았다.
힙이 할당되어있고 데이터가 써져있다.
size chunk는 무려 0x411이나 할당한다.
물론 탑청크또한 존제한다.
'Hack > Pwnable' 카테고리의 다른 글
[BlackHat Heap] malloc_state structure (0) 2016.11.29 [BlackHat Heap] heap_info structure (0) 2016.11.29 [Heap Exploit] Unsafe_unlink - how2heap ver (5) 2016.11.08 heap 문제 시나리오들.. (0) 2016.11.08 [Heap exploit] unsorted bin attack (0) 2016.10.26