hacktricks/src/binary-exploitation/libc-heap/overwriting-a-freed-chunk.md

24 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Перезапис звільненого блоку
{{#include ../../banners/hacktricks-training.md}}
Декілька з запропонованих технік експлуатації купи потребують можливості перезаписувати вказівники всередині звільнених блоків. Мета цієї сторінки - підсумувати потенційні вразливості, які можуть надати цей доступ:
### Просте Використання Після Звільнення
Якщо зловмисник може **записати інформацію в звільнений блок**, він може зловживати цим, щоб перезаписати потрібні вказівники.
### Подвійне Звільнення
Якщо зловмисник може **`free` двічі той самий блок** (можливо, звільняючи інші блоки між цим) і зробити так, щоб він був **2 рази в одному і тому ж біні**, користувач зможе **вилучити блок пізніше**, **записати потрібні вказівники** і потім **знову його виділити**, викликавши дії блоку, що виділяється (наприклад, атака швидкого біна, атака tcache...)
### Переповнення Купи
Можливо, що **переповнити виділений блок, маючи поруч звільнений блок** і змінити деякі заголовки/вказівники цього блоку.
### Переповнення на Один
У цьому випадку буде можливим **змінити розмір** наступного блоку в пам'яті. Зловмисник може зловживати цим, щоб **зробити виділений блок більшим**, потім **`free`** його, змушуючи блок бути **доданим до біна іншого** розміру (більшого), потім виділити **фальшивий розмір**, і атака отримає доступ до **блоку з розміром, який більший**, ніж він насправді є, **надаючи таким чином ситуацію з перекритими блоками**, яка експлуатується так само, як і **переповнення купи** (перевірте попередній розділ).
{{#include ../../banners/hacktricks-training.md}}