Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

cdor1's lab

Top Chunk 구하기 본문

Security/Pwnable

Top Chunk 구하기

Cdor1 2016. 11. 18. 00:19

malloc이 3번 됐을때 주소들의 상황이다.

현재 top chunk는 0x804c0e0에 존재하는데 만약 우리가 0x804c008의 주소를 leak 해낼수 있다면

주소 계산을 통해 top chunk를 구할 수 있다.

a = malloc(0x40u); #1

b = malloc(0x40u); #2

c = malloc(0x40u); #3

일 때


prev_size, size 등 등을 계산해서

1번째 청크 72

2번째 청크 64

3번째 청크 72


0x804C010 + 0xd0(72+64+72) = 0x804c0e0


확실한 주소를 구하려면 32bit 환경에서는 +8을 64비트 환경에서는 +16을 해주어야 한다.

이유는 청크 앞에 붙는 size 플래그와 널 때문이다. 





'Security > Pwnable' 카테고리의 다른 글

pwnable 문제 주의할 것  (0) 2016.11.22
Boston key party ctf 2016 cookbook  (0) 2016.11.22
angr  (0) 2016.11.17
BCTF bcloud  (0) 2016.11.17
DEFCON22 Quals babyfirst-heap  (0) 2016.11.10
Comments