Overwriting a freed chunk

Підтримайте HackTricks

Декілька запропонованих технік експлуатації купи потребують можливості перезаписувати вказівники всередині вивільнених чанків. Мета цієї сторінки - узагальнити потенційні вразливості, які можуть надати такий доступ:

Простий Use After Free

Якщо для атакуючого можливо записати інформацію в вивільнений чанк, вони можуть використати це для перезапису необхідних вказівників.

Подвійне вивільнення

Якщо атакуючий може free двічі той самий чанк (вивільнювати інші чанки між ними потенційно) і зробити так, щоб він 2 рази опинився в одному біні, користувач може виділити чанк пізніше, записати необхідні вказівники, а потім виділити його знову, спровокувавши дії виділення чанку (наприклад, атаку на швидкий бін, атаку на tcache...)

Переповнення купи

Можливо переповнити виділений чанк, який має поруч вивільнений чанк і змінити деякі заголовки/вказівники.

Переповнення на один байт

У цьому випадку можливо змінити розмір наступного чанку в пам'яті. Атакуючий може використати це, щоб зробити виділений чанк більшим за розмір, а потім його free, зробивши чанк доданим до біна іншого розміру (більшого), потім виділити фейковий розмір, і атака матиме доступ до чанку з розміром, який більший, ніж він насправді є, надаючи таким чином ситуацію перекривання чанків, яка може бути експлуатована так само, як переповнення купи (перевірте попередній розділ).

Підтримайте HackTricks

Last updated