House of Rabbit
Вимоги
Можливість змінювати вказівник fd або розмір fast bin: Це означає, що ви можете змінити впередній вказівник шматка в fastbin або його розмір.
Можливість викликати
malloc_consolidate
: Це можна зробити або виділивши великий шматок, або об'єднавши верхній шматок, що змушує купу об'єднувати шматки.
Цілі
Створення перекриваючихся шматків: Мати один шматок, який перекривається з іншим, що дозволяє подальші маніпуляції купою.
Фальшиві шматки: Обманути алокатор, щоб він розглядав фальшивий шматок як законний під час операцій з купою.
Кроки атаки
POC 1: Зміна розміру шматка fast bin
Мета: Створення перекриваючого шматка шляхом маніпулювання розміром шматка fastbin.
Крок 1: Виділення шматків
Крок 2: Звільнення чанків
Крок 3: Змінити Розмір Частини
Ми змінюємо метадані розміру chunk1
на 0xa1. Це ключовий крок для обману алокатора під час консолідації.
Крок 4: Викликати
malloc_consolidate
Виділення великого фрагмента спричиняє виклик функції malloc_consolidate
, яка об'єднує невеликі фрагменти у швидкому блоці. Змінений розмір chunk1
призводить до перекриття з chunk2
.
Після консолідації chunk1
перекривається з chunk2
, що дозволяє подальшу експлуатацію.
POC 2: Зміна вказівника fd
fd
Мета: Створення фальшивого фрагмента шляхом маніпулювання вказівником fd
швидкого блоку.
Крок 1: Виділення фрагментів
Пояснення: Ми виділяємо два блоки, один менший і один більший, щоб налаштувати купу для фальшивого блоку.
Крок 2: Створення фальшивого блоку
Крок 3: Звільнення
chunk1
Пояснення: Ми вивільняємо chunk1
, додаючи його до списку fastbin.
Крок 4: Змінюємо
fd
chunk1
Пояснення: Ми змінюємо вказівник вперед (fd
) chunk1
, щоб він вказував на наш фальшивий чанк всередині chunk2
.
Крок 5: Викликати
malloc_consolidate
Виділення великого шматка знову спричинює виклик malloc_consolidate
, який обробляє фейковий шматок.
Фейковий шматок стає частиною списку fastbin, роблячи його законним шматком для подальшої експлуатації.
Огляд
Техніка House of Rabbit включає в себе зміну розміру шматка fast bin для створення перекриваючихся шматків або маніпулювання вказівником fd
для створення фейкових шматків. Це дозволяє зловмисникам фальшивити законні шматки в купі, що дозволяє різноманітні форми експлуатації. Розуміння та практика цих кроків покращить ваші навички експлуатації купи.
Last updated