제목 그대로 unsorted bin 을 통해서 하는 libc leak 없이 진행될수 있는 fastbin duplicate다.
간단하게 got에도 libc 주소가 0x7f~~꼴로 들어가니까 이걸 써서 할수도 있는데, 지금 해볼건 조금 다른거다.
다음같은 조건이 있을경우 써먹을 수 있다.
1. bss영역에 heap pointer가 존재할것.
2. view메뉴가 있을것 ( 상황에 따라 생략 가능 )
3. bss에 stdin, stdout 중 하나가 있을것
4. Heap edit가 가능할것
이 4가지만 있으면 간단하게 fastbin duplicate가 가능하다.
bss에는 보통 stdin, stdout이 있는데, 이건 libc영역에 존재하는것이라, 0x7f~~꼴의 주소를 가지게 된다.
이를 이용해서 이부분에 fake size 를 만들어 할당할수 있다
그리고, 여기다 할당받고, 값을 넣을떄 AAA 정도로 작은 크기만 넣어준다 ( stdin, out 손상 방지 )
그리고 view 메뉴를 통해서 stdin, out의 값을 leak 해준다
이걸로 libc leak이 가능하다.
그리고 나서는 edit 나 재할당이나 아무거나 해서 pointer 값을 malloc_hook 이나 got 주소든 원하는 주소를 적어준다.
이때 stdin, out이 손상되지 않게 아까 leak 한 주소를 그대로 적어서 맞춰줘야한다.
그 후에는, edit 로 조져주면 된다.
'Pwnable > Heap' 카테고리의 다른 글
Freed Realloc (0) | 2018.04.09 |
---|---|
Implementation of Realloc (0) | 2018.04.06 |
Heap exploit (0) | 2018.03.29 |
Fastbin dup consolidate (0) | 2018.03.28 |
Fastbindup (0) | 2018.03.11 |