Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Panel
titleHeap area structure

AddressStateHeap sizefdbk
Order list[0]

0xa175e0

A0x20

None

None
창고에 저장된 사탕 정보

0xa17600

A0x20NoneNone
창고에 저장된 사탕 설명

0xa17620

A0x90NoneNone
Order list[1]

0xa176b0

A0x20NoneNone
  • 다음과 같은 방법으로 해제된 Heap 영역을 Small bin에 등록합니다.
    • 유저는 처음에 등록한 사탕을 모두 구매 합니다.
      • 해당 프로그램은 사탕을 모두 소진을 하면 사용하고 있던 Heap 영역을 모두 해제 합니다.
        • 사탕 설명(0x90) 영역은 Unsortedbin에 등록됩니다.
          • 이때 fd, bk에 main arena의 주소 값이 저장됩니다.
      • 그리고 해당 프로그램은 모두 소진된 사탕에 대한 평가 내용을 저장하기 위해 Heap 영역을 할당합니다.
        • malloc()는 이때 해제된 사탕 정보(0x20) 영역, 사탕 설명(0x90) 영역을 하나의 영역(0xb0)으로 변경합니다.
        • malloc()는 Heap 영역(1200 byte)을 할당으로 인해 해당 영역을 Small bin에 저장합니다.
          • 해당 Free chunk의 fd,bk 영역에 Small bin의 주소가 저장됩니다.

...

Panel
titleHeap area structure

AddressStateHeap sizefdbk
Order list[0]0xa175e0A0x20NoneNone
창고에 저장된 사탕 & 사탕 설명

0xa17600

F0xb0

0x7ff5052a2c18

0x7ff5052a2c18

Order list[1]

0xa176b0

A0x20NoneNone
구매한 사탕 평가

0xa176d0

A0x4c0NoneNone
  • 다음과 같은 방법으로 Libc address를 추출 할 수 있습니다.
    • 유저는 1개의 사탕을 Order list에 추가 합니다.
      • Order list에 추가 된 사탕의 정보는 하나의 영역(0xb0)으로 변경 영역에 할당됩니다.
    • 유저는 Order list의 내용을 출력해 Libc address를 추출 할 수 있습니다.

...

Panel
titleHeap area structure

AddressStateHeap sizefdbk
Order list[0]0xa175e0A0x20NoneNone
Order list[2]0xa17600

A

0x20NoneNone
창고에 저장된 사탕 & 사탕 설명(Unsorted bin)

0xa17620

F0x90

0x7f850cb04b78

0x7f850cb04b78

Order list[1]

0xa176b0

A0x20NoneNone
구매한 사탕 평가

0xa176d0

A0x4c0NoneNone
  • 다음과 같은 스크립트를 이용해 Libc address를 추출 할 수 있습니다.

...

Flag

SECCON{Y0u h4ve 4cquired the "H0use 0f L0re" techn0l0gy. by Lazenca.0x0}

Related Site

Panel