...
Panel | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||
|
- 다음과 같은 방법으로 해제된 Heap 영역을 Small bin에 등록합니다.
- 유저는 처음에 등록한 사탕을 모두 구매 합니다.
- 해당 프로그램은 사탕을 모두 소진을 하면 사용하고 있던 Heap 영역을 모두 해제 합니다.
- 사탕 설명(0x90) 영역은 Unsortedbin에 등록됩니다.
- 이때 fd, bk에 main arena의 주소 값이 저장됩니다.
- 사탕 설명(0x90) 영역은 Unsortedbin에 등록됩니다.
- 그리고 해당 프로그램은 모두 소진된 사탕에 대한 평가 내용을 저장하기 위해 Heap 영역을 할당합니다.
- malloc()는 이때 해제된 사탕 정보(0x20) 영역, 사탕 설명(0x90) 영역을 하나의 영역(0xb0)으로 변경합니다.
- malloc()는 Heap 영역(1200 byte)을 할당으로 인해 해당 영역을 Small bin에 저장합니다.
- 해당 Free chunk의 fd,bk 영역에 Small bin의 주소가 저장됩니다.
...
Panel | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||
|
- 다음과 같은 방법으로 Libc address를 추출 할 수 있습니다.
- 유저는 1개의 사탕을 Order list에 추가 합니다.
- Order list에 추가 된 사탕의 정보는 하나의 영역(0xb0)으로 변경 영역에 할당됩니다.
- Order list에 추가 된 사탕의 정보는 하나의 영역(0xb0)으로 변경 영역에 할당됩니다.
- 유저는 Order list의 내용을 출력해 Libc address를 추출 할 수 있습니다.
- 유저는 1개의 사탕을 Order list에 추가 합니다.
...
Panel | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||
|
- 다음과 같은 스크립트를 이용해 Libc address를 추출 할 수 있습니다.
...
Flag | SECCON{Y0u h4ve 4cquired the "H0use 0f L0re" techn0l0gy. by Lazenca.0x0} |
---|
Related Site
Panel |
---|